バッチで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 バッチ エラー 排除 継続 無視 登録できる物だけ
事務所の初期値で全事務所が入っている所がありました。
そのため、事務所が重複してキーエラーが発生…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 バッチ エラー 排除 継続 無視 登録できる物だけ