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 |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
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.
From | Date | Subject | |
---|---|---|---|
Next Message | Javier Aquino H. | 2010-08-17 04:59:45 | RE: Error FK en transaccion |
Previous Message | Miguel Angel Hernandez Moreno | 2010-08-16 22:56:30 | Re: Consulta con fechas |