#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)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS