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

Error FK en transaccion

From: Raúl Andrés Duque Murillo <ra_duque(at)yahoo(dot)com(dot)mx>
To: "Lista - PostgreSQL" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Error FK en transaccion
Date: 2010-08-17 04:25:40
Message-ID: 9744EB0AB3774E6EAD295D08ED4887FD@Principal (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Cordial Saludo.

Estoy extrañamente experimentando un error de FK al ejecutar las siguientes líneas:

BEGIN; 
SET TRANSACTION ISOLATION LEVEL READ COMMITTED; 
INSERT INTO "dbo"."zonas"("descripcion_zona") VALUES ('Zona A');
SELECT currval(pg_get_serial_sequence('"dbo"."zonas"', 'id_zona')) AS "id_zona"         --- devuelve 6
SELECT * FROM "dbo"."zonas";            --- Por validación
INSERT INTO "dbo"."nodoes"("codigo_nodo","descripcion_nodo","id_zona") VALUES ('AAA','Nodo A',cast(6 as int8));
SELECT currval(pg_get_serial_sequence('"dbo"."nodoes"', 'id_nodo')) AS "id_nodo" 
ROLLBACK;

ERROR:
2010-08-16 23:06:27 COTERROR:  inserción o actualización en la tabla «nodoes» viola la llave foránea «fkey_nodo_zona» 
2010-08-16 23:06:27 COTDETALLE:  La llave (id_zona)=(6) no está presente en la tabla «def_zona». 

Las dos tablas utilizan como Id campos serial y si veo el resultado del SELECT incluido dentro de la transacción efectivamente el Id asignado fue 6

Alguna sugerencia?

PD. Si quito la FK se ejecuta correctamente y los el id_zona de las dos tablas coinciden.

Atentamente,

RAUL DUQUE
Bogotá, Colombia





__________ Information from ESET NOD32 Antivirus, version of virus signature database 5371 (20100816) __________

The message was checked by ESET NOD32 Antivirus.

http://www.eset.com

Responses

pgsql-es-ayuda by date

Next:From: Javier Aquino H.Date: 2010-08-17 04:59:45
Subject: RE: Error FK en transaccion
Previous:From: Miguel Angel Hernandez MorenoDate: 2010-08-16 22:56:30
Subject: Re: Consulta con fechas

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