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

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

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 バッチ エラー 排除 継続 無視 登録できる物だけ
『テクノロジー』 ジャンルのランキング
コメント   この記事についてブログを書く
この記事をはてなブックマークに追加
« exewrap が更新されていたっ! | トップ | postgresql を Accessで見る... »

コメントを投稿

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

コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

あわせて読む

トラックバック

この記事のトラックバック  Ping-URL
ブログ作成者から承認されるまでトラックバックは反映されません。
  • 送信元の記事内容が半角英数のみのトラックバックは受け取らないよう設定されております。
  • ※ブログ管理者のみ、編集画面で設定の変更が可能です。