PostgreSQLには、埋め込みSQLを除いて、自動コミットを無効にする設定がありません。たとえば、PSQLで自動コミットをオフに設定しようとすると、このようなエラーが表示されます。
sandbox=# set autocommit=off;
ERROR: SET AUTOCOMMIT TO OFF is no longer supported
代わりに、BEGINを使用してトランザクションを開始します。 PostgreSQLでは、トランザクションを開始し、単一のステートメントで分離レベルを設定できます。 (他のプラットフォームでは複数のステートメントが必要です。)スケルトン構文 PostgreSQL9.2の場合は
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
COMMITまたはROLLBACKのいずれかでトランザクションを終了します。