* バッチ処理中のエラー [#wf9996cd]

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

** 前提 [#tc23ea48]
   テーブル "t1"
  列  |   型    | 修飾語
 -----+---------+--------
  id  | integer |
  num | integer |

** バッチ処理中にエラーを [#l6ab6c9a]
** バッチ処理中にエラーを起こす [#o2ed4d55]

 $ 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