sql >> Database >  >> RDS >> PostgreSQL

postgresql-trigger:automatische vastlegging uitschakelen en isolatieniveau instellen

PostgreSQL heeft geen instelling die autocommit uitschakelt, behalve voor ingesloten SQL. Als je autocommit probeert uit te schakelen in bijvoorbeeld PSQL, zie je zoiets als deze fout.

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

Gebruik in plaats daarvan BEGIN om een ​​transactie te starten. In PostgreSQL kunt u een transactie starten en het isolatieniveau instellen in een enkele instructie. (Andere platforms vereisen meerdere instructies.) Skeletsyntaxis voor PostgreSQL 9.2 is

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

Beëindig de transactie met COMMIT of ROLLBACK.



  1. Meerdere query's uitvoeren in codeigniter die niet één voor één kunnen worden uitgevoerd

  2. Inleiding tot auto_explain:hoe trage Postgres-queryplannen automatisch te loggen

  3. SQL-query meerdere kolommen met behulp van Distinct op slechts één kolom

  4. MySQL 5.5 externe-sleutelbeperking mislukt wanneer externe sleutel bestaat