SQL-92/99 Oracle Db2 SQL Server MySQL PostgreSQL Access

SAVE TRANSACTION セーブポイント名

SAVE TRANSACTIONはトランザクション処理中のロールバックポイントを作成するときに使用します。


関連キーワード





SQL実行例の説明(1)

・T1_SAMPLE表のID100102に一致するデータの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;

IDL_NAMEF_NAMESEX
100101山田晴男1
100102佐藤2
100103鈴木二郎1
100104田中栄吉1
100105木村1
SQL Result
IDL_NAMEF_NAMESEX
100101山田晴男1
100102山田2
100103鈴木二郎1
100104田中栄吉1
100105木村1