From: | Alvaro Herrera <alvherre(at)commandprompt(dot)com> |
---|---|
To: | Gabriel Hermes Colina Zambra <hermeszambra(at)yahoo(dot)com> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Algo no defini bien ? o fallo FK |
Date: | 2007-12-31 01:41:07 |
Message-ID: | 20071231014107.GC9886@alvh.no-ip.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Gabriel Hermes Colina Zambra escribió:
> CONSTRAINT "documentos_id_cab_fkey" FOREIGN KEY
> ("id_cab")
> REFERENCES "central"."cabezales"("id_cab")
> MATCH FULL
> ON DELETE CASCADE
> ON UPDATE CASCADE
> NOT DEFERRABLE,
>
> En esta situacion encontre que en cabezales no estaba
> el registro a los que hacia referencia la tabla
> central_documentos que tiene la llave foranea
> apuntando a central.cabezales, los 14 registros tenian
> el id_cab nulos,
Las llaves foraneas no implican NOT NULL. Debes declarar tus columnas
como NOT NULL. MATCH FULL permite que los campos de la llave foranea
sean todos nulos, en cuyo caso no es obligatorio que haya un registro en
la tabla referenciada que tenga nulas las columnas referenciadas:
MATCH FULL will not allow one column of a multicolumn foreign
key to be null unless all foreign key columns are null.
http://www.postgresql.org/docs/8.2/static/sql-createtable.html
Si agregas NOT NULL, esto deja de ser un problema.
--
Alvaro Herrera http://www.CommandPrompt.com/
PostgreSQL Replication, Consulting, Custom Development, 24x7 support
From | Date | Subject | |
---|---|---|---|
Next Message | Gabriel Hermes Colina Zambra | 2007-12-31 01:57:17 | Re: Depurar Funciones step to step. |
Previous Message | Alvaro Herrera | 2007-12-31 01:25:16 | Re: problema con tildes |