PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Postgresql-Trigger:Auto-Commit deaktivieren und Isolationsstufe festlegen

PostgreSQL hat keine Einstellung, die Autocommit deaktiviert, mit Ausnahme von Embedded SQL. Wenn Sie versuchen, Autocommit beispielsweise in PSQL zu deaktivieren, sehen Sie so etwas wie diesen Fehler.

sandbox=# set autocommit=off;
ERROR:  SET AUTOCOMMIT TO OFF is no longer supported

Verwenden Sie stattdessen BEGIN, um eine Transaktion zu starten. In PostgreSQL können Sie eine Transaktion starten und die Isolationsstufe in einer einzigen Anweisung festlegen. (Andere Plattformen erfordern mehrere Anweisungen.) Skeleton-Syntax für PostgreSQL 9.2 ist

BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]

where transaction_mode is one of:

    ISOLATION LEVEL { SERIALIZABLE   | REPEATABLE READ | 
                      READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY
    [ NOT ] DEFERRABLE

Beenden Sie die Transaktion entweder mit COMMIT oder ROLLBACK.