DBAtlas · データベース運用アトラス

25P02: in_failed_sql_transaction

PostgreSQL

意味

トランザクション内ですでにエラーが発生しており、以降のコマンドは実行できない。トランザクションはアボート状態にあり、ROLLBACK のみ受け付けられる。

原因

トランザクションブロック内の前の文が失敗した (例: 制約違反) にもかかわらず、同じトランザクションに新しいコマンドが送られ続けている。アプリケーションがエラーを捕捉せずにトランザクションを続行している。

対処方法

トランザクションをロールバックする: ROLLBACK し、改めて開始する。ブロックのエラーを切り離して続行したい場合は SAVEPOINT を使い、ROLLBACK TO SAVEPOINT でその地点に戻る。アプリケーションでは各文のエラーを捕捉し、トランザクションを適切に管理する (コミット/ロールバックの判断を明示する)。

DBAtlas で開く →

同じデータベースの他の項目