バッチ処理中のエラー

バッチ処理中にエラーを起こすと、バッチ処理にCOMMITが記述されていても、ROLLBACKされる。

前提

   テーブル "t1"
  列  |   型    | 修飾語
 -----+---------+--------
  id  | integer |
  num | integer |

バッチ処理中にエラーを起こす

 $ vi test.sql
 -------------------------------
 BEGIN;
 INSERT INTO t1 VALUES ( 1, 10 );
 INSERT INTO t1 VALUES ( 2, 'abc' );
 COMMIT;
 -------------------------------
 
 $ psql -f test.sql
 BEGIN
 INSERT 0 1
 psql:test.sql:3: ERROR:  invalid input syntax for integer: "abc"
 行 1: INSERT INTO t1 VALUES ( 2, 'abc' );
                                 ^
 ROLLBACK

ロールバックされたので、テーブルt1には一切レコードが挿入されていない。


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

Last-modified: 2017-04-19 (水) 20:31:43