SAVEPOINTを使用するサンプルです。
セーブポイントを使うと、部分的にロールバックをすることができます。
サンプル
例)セーブポイントを使った流れのサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
--①セーブポイント「SP1」を発行する SAVEPOINT SP1; --②処理1 INSERT INTO TBL_TEST VALUES('hoge'); --③セーブポイント「SP2」を発行する SAVEPOINT SP2; --④処理2 INSERT INTO TBL_TEST VALUES('HOGE'); --⑤SP2の時点まで戻る ROLLBACK TO SP2; --⑥コミット COMMIT; |
結果、処理1の結果のみコミットされます。
解説
- セーブポイントを作りたい箇所で、「SAVEPOINT <セーブポイント名>」を実行するとセーブポイントが作成されます。
- セーブポイント名は自由に決めて頂いて構いません。
- セーブポイントまで戻したい箇所で、「ROLLBACK TO <セーブポイント名>」を実行すると指定した場所までROLLBACKされます。