DBAtlas · Atlas für Datenbankbetrieb

25P02: in_failed_sql_transaction

PostgreSQL

Was bedeutet das?

Früher in der Transaktion ist bereits ein Fehler aufgetreten; darin können keine weiteren Befehle ausgeführt werden. Die Transaktion ist im Zustand aborted, und nur ROLLBACK wird akzeptiert.

Ursache

Ein vorheriges Statement in einem Transaktionsblock ist fehlgeschlagen (z. B. eine Constraint-Verletzung), und trotzdem werden weiter neue Befehle in derselben Transaktion gesendet. Die Anwendung fängt den Fehler nicht ab und setzt die Transaktion fort.

Lösung

Setze die Transaktion zurück: ROLLBACK, und starte sie dann neu. Willst du den Fehler eines Blocks isolieren und weitermachen, verwende SAVEPOINT und kehre mit ROLLBACK TO SAVEPOINT zu diesem Punkt zurück. Fange in der Anwendung den Fehler jedes Statements ab und steuere die Transaktion sauber (Commit-/Rollback-Entscheidung explizit treffen).

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank