25P02: in_failed_sql_transaction
PostgreSQLQue signifie cette erreur ?
Une erreur s'est déjà produite plus tôt dans la transaction ; aucune autre commande ne peut y être exécutée. La transaction est à l'état annulé (aborted) et seul ROLLBACK est accepté.
Cause
Une instruction précédente d'un bloc de transaction a échoué (par ex. une violation de contrainte) et de nouvelles commandes continuent malgré tout d'être envoyées dans la même transaction. L'application n'intercepte pas l'erreur et poursuit la transaction.
Comment la corriger
Annulez la transaction : ROLLBACK, puis relancez-la. Si vous souhaitez isoler l'erreur d'un bloc et continuer, utilisez SAVEPOINT et revenez à ce point avec ROLLBACK TO SAVEPOINT. Dans l'application, interceptez l'erreur de chaque instruction et gérez correctement la transaction (rendez explicite la décision commit/rollback).