#navi(../)
* PostgreSQLでオートコミットをオフにする方法 [#f1ca4bd7]
PostgreSQLのデフォルトでは自動コミットとなっています。~
psqlコマンド等でメンテナンスや調査をしていた場合、自動コミットでは心配なので、~
毎回、begin; するのは面倒ですよね。~
自動コミット(auto commit)をオフにする方法を以下に記します。
#contents
#htmlinsertpcsp(db-top.html,db-sp.html)
* 関連記事 [#r073509f]
-[[psql表示でmore表示ぜず一度に表示する方法>PostgreSQL/psql表示でmore表示ぜず一度に表示する方法]]
-[[psql起動時にpagerをoffにしたい>PostgreSQL/psql起動時にpagerをoffにしたい]]
-[[psqlの出力でnullなのか空なのかわかりやすくしたい>PostgreSQL/psqlの出力でnullなのか空なのかわかりやすくしたい]]
-[[SQLキーワードのtab補完で大文字に自動補完する方法>PostgreSQL/SQLキーワードのtab補完で大文字に自動補完する方法]]
* AUTOCOMMIT [#n12531f1]
AUTOCOMMIT変数にonまたはoffを指定すれば、自動コミットの有効・無効を設定できます。~
以下のコマンドで、AUTOCOMMITの値を確認することができます。
\echo :AUTOCOMMIT
#ref(01.png)
#br
** 自動コミットをオフにする [#xed576e0]
以下の構文により、AUTOCOMMITをオフにすることができます。
\set AUTOCOMMIT off
以下、実行例です。
#ref(02.png)
** 自動コミットをオンにする [#tf93420c]
以下の構文により、AUTOCOMMITをオンにすることができます。
\set AUTOCOMMIT on
以下、実行例です。
#ref(03.png)
* psql起動時に設定する [#tde63e65]
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する設定方法でした。
#htmlinsertpcsp(db-btm.html,db-sp.html)