いつもどこかでデスマーチ♪

不定期に、私の日常を書き込みしていきます。

Postgresql で探していたものが見つかった!

2014年12月10日 02時53分03秒 | メモ
バッチでSQLを実行する時、事務所がたくさんあって全部マージする必要があったのですが、
事務所の初期値で全事務所が入っている所がありました。

そのため、事務所が重複してキーエラーが発生…orz
postgresqlの特性上、1度エラーが出ると以降のSQLは全てエラー(commit/rollbackするまで)になります。


エラーは無視して、OKなSQLだけ実行してくれないかなぁ~~~

その答えがここに有ったっ!
http://postgresql.g.hatena.ne.jp/iakio/20081120/1227202633


ファイルの先頭に、これを記述しましょう
\set ON_ERROR_ROLLBACK on

その後のバッチで流すSQLはsavepoint を使って、エラーがあるたびにロールバックしてくれます。
そのため、エラーの物はロールバック(セーブポイントまで)。
OKの物はそのまま登録できるのです。

良かったよかった…


検索用:Postgresql バッチ エラー 排除 継続 無視 登録できる物だけ

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« exewrap が更新されていたっ! | トップ | postgresql を Accessで見る... »

コメントを投稿

ブログ作成者から承認されるまでコメントは反映されません。

メモ」カテゴリの最新記事