ロールバック (ROLLBACK)

テーブルにレコードを挿入するなどの変更を行っても、その変更はまだ確定されていません。変更を取り消す(元の状態に戻す)ことを「ロールバック」と言います。ロールバックを行うには、SQL文の「ROLLBACK」を使用します。

ロールバックできる操作

ロールバックできるのは、DML (Data manipulation language) 文による操作だけです。DML文とは、次のSQLです。

ロールバックできない操作

DDL (Data Definition Language) 文は実行すると即座にコミットされるので、ロールバックできない。具体的には、以下に示す SQL 文が DDL に相当する。

ROLLBACKの構文

ROLLBACK [TO savepoint]
savepoint
ロールバックするセーブポイントを指定する。

セーブポイントを指定してロールバックする例を以下に示す。

SQL> SAVEPOINT sp1;

SQL> INSERT INTO emp VALUES(5389, '井上和');

SQL> SAVEPOINT sp2;

SQL> INSERT INTO emp VALUES(5396, '五百城茉央');

SQL> ROLLBACK TO sp2;

SQL> COMMIT;

上記の SQL の場合、五百城茉央のデータはロールバックされて、井上和のデータのみコミットされる。

ROLLBACKの使用例

SQL> rollback

ロールバックが完了しました。

SQL>

SQLの分類

Transaction Control