Skip site navigation (1) Skip section navigation (2)

Re: Algo no defini bien ? o fallo FK

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 (view raw or flat)
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

In response to

Responses

pgsql-es-ayuda by date

Next:From: Gabriel Hermes Colina ZambraDate: 2007-12-31 01:57:17
Subject: Re: Depurar Funciones step to step.
Previous:From: Alvaro HerreraDate: 2007-12-31 01:25:16
Subject: Re: problema con tildes

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group