25006: read_only_sql_transaction
PostgreSQLWas bedeutet das?
Ein datenändernder Befehl (INSERT/UPDATE/DELETE/DDL) wurde in einer Read-only-Transaktion versucht. Die Transaktion ist nur für Lesezugriffe konfiguriert. Gehört zu Klasse 25 (invalid_transaction_state).
Ursache
SET TRANSACTION READ ONLY oder die Einstellung default_transaction_read_only=on; oder, am häufigsten, ein Schreibversuch auf einer Lese-Replica (Hot Standby / Streaming-Replica). Standby-Server sind per Definition schreibgeschützt.
Lösung
Leite Schreibzugriffe auf den Primary-Server; prüfe dein Verbindungsrouting, das Lese- und Schreibzugriffe aufteilt. Falls versehentlich gesetzt: SET TRANSACTION READ WRITE; oder serverweit default_transaction_read_only=off. Stelle sicher, dass deine Anwendung Lese-/Schreibverkehr an den richtigen Knoten sendet.