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: [EMAIL PROTECTED]
Jabber ID: [EMAIL PROTECTED]
Public Key ID: 5C990A6C 111C3661
Blog: http://marcelosoft.blogspot.com
--
TIP 10: no uses HTML en tu pregunta, seguro que quien responda no podrá leerlo

Responder a