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

バッチで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 バッチ エラー 排除 継続 無視 登録できる物だけ

コメント

このブログの人気の投稿

ヨドバシカメラの店舗購入履歴を見るには…

C# の WPF の DataGrid で 行を交互に背景色を変える+選択色を変える+カラムが無い所も変える…

Visual Studio の ホットリロードが動かない場合に確認するところ