Problema con DEFERRED CONSTRAINTS

From: Alberto <alberto(at)c17(dot)net>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Problema con DEFERRED CONSTRAINTS
Date: 2007-06-06 08:35:50
Message-ID: 466671E6.8020804@c17.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola.

Revisando el log de nuestra base de datos, nos hemos encontrado con el
siguiente problema.

2007-06-06 10:24:50 CEST LOG: statement: BEGIN
2007-06-06 10:24:50 CEST LOG: statement: SELECT *
FROM articulos
WHERE ( articulos.pmid = 123456 )

2007-06-06 10:24:50 CEST LOG: statement: SELECT *
FROM articulos
WHERE ( articulos.id = 103330 )

2007-06-06 10:24:50 CEST LOG: statement: SET CONSTRAINTS
peticiones_articulos_fk DEFERRED
2007-06-06 10:24:50 CEST LOG: statement: DELETE FROM articulos WHERE
( articulos.id = 103330 )
2007-06-06 10:24:50 CEST ERROR: update or delete on "articulos" violates
foreign key constraint "peticiones_articulos_fk" on "peticiones"
2007-06-06 10:24:50 CEST DETAIL: Key (id)=(103330) is still referenced
from table "peticiones".
2007-06-06 10:24:50 CEST LOG: statement: UPDATE peticiones SET
requester_org_id = 332 , requester_usr_id = 3799 , responder_org_id =
332 , responder_usr_i
d = -1 , fecha_creacion = '2007-06-05 02:41:45.766579' , estado = 2 ,
prioridad = 2 , articulo_id = 87927 , tipo_prestamo_id = 1 , app_entrada
= 5 WHERE (
peticiones.id = 102524 )
2007-06-06 10:24:50 CEST ERROR: current transaction is aborted,
commands ignored until end of transaction block
2007-06-06 10:24:50 CEST LOG: statement: COMMIT

Tal y como se puede ver, abrimos una nueva transacción, y en una de las
operaciones antes de hacer el COMMIT, violamos una restricción.
Supuestamente, con la restricción declarada como:

peticiones_articulos_fk -> FOREIGN KEY (articulo_id) REFERENCES
articulos(id) ON UPDATE RESTRICT ON DELETE RESTRICT DEFERRABLE INITIALLY
DEFERRED

¿No se supone que al estar la restricción declarada como INITIALLY
DEFERRED no comprueba las restricciones hasta que termina la transacción?

Muchas gracias y un saludo.

Attachment Content-Type Size
alberto.vcf text/x-vcard 337 bytes

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gustavo 2007-06-06 12:20:25 Logs de PostgreSQL
Previous Message Jose Maria Mencia Fernandez 2007-06-06 07:08:01 Re: Commit en PLPGSQL