DBAtlas · Атлас эксплуатации баз данных

25P02: in_failed_sql_transaction

PostgreSQL

Что это значит?

Ранее в транзакции уже произошла ошибка; дальнейшие команды в ней выполнить нельзя. Транзакция находится в прерванном состоянии, и принимается только ROLLBACK.

Почему возникает?

Предыдущий оператор в блоке транзакции завершился ошибкой (например, нарушение ограничения), но в той же транзакции продолжают отправляться новые команды. Приложение не перехватывает ошибку и продолжает транзакцию.

Как исправить

Откатите транзакцию: ROLLBACK, затем начните её заново. Если нужно изолировать ошибку блока и продолжить, используйте SAVEPOINT и возвращайтесь к этой точке с помощью ROLLBACK TO SAVEPOINT. В приложении перехватывайте ошибку каждого оператора и корректно управляйте транзакцией (делайте решение о commit/rollback явным).

Открыть в DBAtlas →

Ещё по этой СУБД