SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access
SAVE TRANSACTION セーブポイント名
SAVE TRANSACTIONはトランザクション処理中のロールバックポイントを作成するときに使用します。
関連キーワード
SQL実行例の説明(1)
・T1_SAMPLE表のIDが100102に一致するデータのL_NAMEを山田に更新するトランザクション処理を開始します。
・次に、SAVE TRANSACTIONを使用してロールバックポイントを作成します。
・その後、T1_SAMPLE表にデータを挿入するトランザクション処理を開始します。
BEGIN TRANSACTION;
UPDATE T1_SAMPLE SET L_NAME = '山田' WHERE ID = '100102';
SAVE TRANSACTION ST_UPD1;
INSERT INTO T1_SAMPLE VALUES ('200101', '小林', '健二', '1');
SQL実行の結果(1-1)
・T1_SAMPLE表には5件のデータが格納されています。(左)
・データを更新したトランザクション処理後のセーブポイント(ST_UPD1)へロールバックしてからトランザクション処理を確定します。(右)
・このときデータを挿入したトランザクション処理はロールバック(トランザクション処理が取り消し)されているためT1_SAMPLE表には存在しません。
ROLLBACK TRANSACTION ST_UPD1;
COMMIT TRANSACTION;
SELECT * FROM T1_SAMPLE;
ID | L_NAME | F_NAME | SEX |
---|---|---|---|
100101 | 山田 | 晴男 | 1 |
100102 | 佐藤 | 愛 | 2 |
100103 | 鈴木 | 二郎 | 1 |
100104 | 田中 | 栄吉 | 1 |
100105 | 木村 | 匠 | 1 |
ID | L_NAME | F_NAME | SEX |
---|---|---|---|
100101 | 山田 | 晴男 | 1 |
100102 | 山田 | 愛 | 2 |
100103 | 鈴木 | 二郎 | 1 |
100104 | 田中 | 栄吉 | 1 |
100105 | 木村 | 匠 | 1 |