From: | Marcelo Fernández <fernandezm22(at)yahoo(dot)com(dot)ar> |
---|---|
To: | Reynier Perez Mira <rperezm(at)uci(dot)cu> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: [pgsql-es-ayuda] Problemas con llaves foráneas |
Date: | 2008-10-13 15:43:41 |
Message-ID: | 48F36CAD.60204@yahoo.com.ar |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Reynier Perez Mira escribió:
> Buenos días listeros:
> Tengo dos tablas en una BD cuyo código SQL es el siguiente:
>
> modlic_licencias:
> ---------------------------
> CREATE TABLE public.modlic_licencias (
> id_licencia bigint NOT NULL,
> id_categoria bigint NOT NULL,
> id_autor bigint NOT NULL,
> nombre varchar(50),
> nodvd integer NOT NULL,
> fecha_creacion date,
> version varchar(10),
> documentacion text,
> sitio varchar(150),
> fecha_vencimiento date,
> privativo boolean NOT NULL DEFAULT true,
> CONSTRAINT licencia_software_pkey
> PRIMARY KEY (id_licencia),
> CONSTRAINT fk_lic_licidio
> FOREIGN KEY (id_licencia)
> REFERENCES public.modlicrel_licidio(id_licencia)
> ON DELETE CASCADE
> ON UPDATE CASCADE
> ) WITH (
> OIDS = FALSE
> );
>
> modlic_categorias:
> ---------------------------
> CREATE TABLE public.modlic_categorias (
> id_categoria integer NOT NULL,
> titulo_categoria varchar(150) NOT NULL,
> activa boolean NOT NULL DEFAULT false,
> CONSTRAINT modlic_categorias_pkey
> PRIMARY KEY (id_categoria)
> ) WITH (
> OIDS = FALSE
> );
>
> Ahora bien. Una categoría puede tener 0 o muchas licencias lo cual crearía una relación 0 ... n de la tabla categorías a la tabla licencias. Cuando intento crear la relación Postgre me arroja este error:
>
> SQL Error: ERROR: there is no unique constraint matching given keys for referenced table "modlic_licencias"
>
> ¿Alguien me podría decir que es lo que estoy haciendo mal?
Si bien en lo que pasaste no veo la creación de la FK a la tabla
modlic_categorias (que es lo que te está dando error), cuando armás una
relacion 0..N el campo FK debe poder tener valores NULL. Si tu campo FK
es modlic_licencias.id_categoria, no lo estás declarando como NULL.
Y sobre el error, te da eso cuando ejecutás lo que pusiste arriba? O hay
un REFERENCES que falta? (y que asumo que puede ser el del error)?
Saludos
Marcelo
--
Marcelo F. Fernández
Buenos Aires, Argentina
Licenciado en Sistemas - CCNA
E-Mail: fernandezm22(at)yahoo(dot)com(dot)ar
Jabber ID: fernandezm22(at)jabber(dot)org
Public Key ID: 5C990A6C 111C3661
Blog: http://marcelosoft.blogspot.com
From | Date | Subject | |
---|---|---|---|
Next Message | Moises Alberto Lindo Gutarra | 2008-10-13 15:44:50 | Re: Actualización de PostgreSQL me acabó con la BD |
Previous Message | Juan Ramirez | 2008-10-13 15:39:52 | RE: Ayuda con una Funcion plpgsql |