PostgreSQLのデフォルトでは自動コミットとなっています。
psqlコマンド等でメンテナンスや調査をしていた場合、自動コミットでは心配なので、
毎回、begin; するのは面倒ですよね。
自動コミット(auto commit)をオフにする方法を以下に記します。
AUTOCOMMIT変数にonまたはoffを指定すれば、自動コミットの有効・無効を設定できます。
以下のコマンドで、AUTOCOMMITの値を確認することができます。
\echo :AUTOCOMMIT
以下の構文により、AUTOCOMMITをオフにすることができます。
\set AUTOCOMMIT off
以下、実行例です。
以下の構文により、AUTOCOMMITをオンにすることができます。
\set AUTOCOMMIT on
以下、実行例です。
psql起動時にAUTOCOMMITの設定を反映したい場合は、~/.psqlrcに記述すれば可能になります。
毎回起動時に設定する必要ななくなります。
シェルであれば、以下のコマンドを実行することにより、AUTOCOMMITをoffにできます。
echo '\set AUTOCOMMIT off' >> ~/.psqlrc
上記のコマンドを実行すると、以下のように最終行に追記されます。(ファイルがない場合は新規に作成されます。)
sakura@cygwin ~$ echo '\set AUTOCOMMIT off' >> ~/.psqlrc sakura@cygwin ~$ cat ~/.psqlrc \pset pager off \pset null '(null)' \set COMP_KEYWORD_CASE upper \set AUTOCOMMIT off
以上、PostgreSQLでAUTOCOMMITをon/offする設定方法でした。