psqlトランザクション

psqlトランザクション postgreSQL

PostgreSQL ではデフォルトで「autocommit」が「有効」になっているので、BEGIN コマンドなどで明示的にトランザクションを開始していない限りは SQL 文を実行するごとにコミットされます。

トランザクションについて

BEGIN と START TRANSACTION

BEGIN と START TRANSACTION は同様で新しいトランザクションを開始します。しかし、以下のコマンドでトランザクションは終了されるため、もう一度、BEGIN または START TRANSACTIONでトランザクションを開始する必要。

・ABORT で現在のトランザクションをアボート(停止)
・ROLLBACK で現在実行中のトランザクションはロールバックされ、そのトランザクションで行われた更新はすべて元の状態に戻されます。
・COMMIT と END でトランザクションを確定(コミット)

AUTOCOMMITをoffに変更

AUTOCOMMIT変数にonまたはoffを指定すれば、自動コミットの有効・無効を設定できます。

AUTOCOMMITの値を確認

\echo :AUTOCOMMIT

自動コミットをオフにする

\set AUTOCOMMIT off

自動コミットをオンにする

\set AUTOCOMMIT on
タイトルとURLをコピーしました