PostgreSQL-Fehler: current transaction is aborted

ERROR:  current transaction is aborted, commands ignored until end of transaction block

Dieser Fehler ist nie die eigentliche Ursache. Eine frühere Anweisung in derselben Transaktion ist bereits fehlgeschlagen, die Transaktion ist in den abgebrochenen Zustand übergegangen, und PostgreSQL weist nun jeden weiteren Befehl zurück, bis Sie die Transaktion mit ROLLBACK beenden. Die zu beantwortende Frage ist immer: was war der erste Fehler?

Was dieser Fehler bedeutet

Sobald irgendeine Anweisung innerhalb einer Transaktion fehlschlägt, garantiert PostgreSQL, dass die Transaktion als Ganzes nicht committen kann — weitere Anweisungen "gelingen" zu lassen, würde erlauben, eine halb angewandte Arbeitseinheit zu committen. Also verweigert es sie alle und wiederholt diese Meldung, bis die Anwendung ein ROLLBACK ausführt (oder zu einem vor dem Fehler gesetzten Savepoint zurückrollt).

Wenn Sie Fluten von 25P02 in Ihren Logs sehen, lesen Sie sie als Symptom mit zwei Schichten: einem ursprünglichen Fehler (eine Zeile, leicht zu übersehen) und einer Anwendung, die die Verbindung weiterverwendet hat, als wäre nichts geschehen (die Flut).

Häufige Ursachen

So diagnostizieren Sie ihn

So beheben Sie ihn

🔍 Häufig gemeinsam anzutreffen: duplicate key value violates unique constraint — der häufigste "erste Fehler" hinter einer 25P02-Flut.