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 |
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 |