DBAtlas · Atlas de operações de banco de dados

25P02: in_failed_sql_transaction

PostgreSQL

O que significa?

Já ocorreu um erro anteriormente na transação; nenhum outro comando pode ser executado nela. A transação está no estado abortado e apenas ROLLBACK é aceito.

Por que acontece?

Uma instrução anterior em um bloco de transação falhou (por exemplo, uma violação de constraint) e novos comandos continuam sendo enviados na mesma transação mesmo assim. A aplicação não captura o erro e prossegue com a transação.

Como resolver

Faça rollback da transação: ROLLBACK, e então inicie-a novamente. Se quiser isolar o erro de um bloco e continuar, use SAVEPOINT e retorne a esse ponto com ROLLBACK TO SAVEPOINT. Na aplicação, capture o erro de cada instrução e gerencie a transação adequadamente (torne explícita a decisão de commit/rollback).

Abrir no DBAtlas →

Mais entradas deste banco