DBAtlas · Atlas de operaciones de bases de datos

25P02: in_failed_sql_transaction

PostgreSQL

¿Qué significa?

Ya se produjo un error anteriormente en la transacción; no pueden ejecutarse más comandos en ella. La transacción está en estado abortado y solo se acepta ROLLBACK.

¿Por qué ocurre?

Una sentencia anterior de un bloque de transacción falló (p. ej., una violación de restricción) y aun así se siguen enviando comandos nuevos en la misma transacción. La aplicación no captura el error y continúa con la transacción.

Cómo solucionarlo

Revierta la transacción: ROLLBACK, y vuelva a iniciarla. Si quiere aislar el error de un bloque y continuar, use SAVEPOINT y vuelva a ese punto con ROLLBACK TO SAVEPOINT. En la aplicación, capture el error de cada sentencia y gestione la transacción correctamente (haga explícita la decisión de commit/rollback).

Abrir en DBAtlas →

Más entradas de este motor