ROLLBACK
現在のトランザクションを停止し、そのトランザクションで実行されたすべての更新を破棄します。
このコマンドは、ABORTコマンドと同じ機能を実行します。
構文
ROLLBACK [ WORK | TRANSACTION ]
パラメータ
- WORK
-
オプションキーワード このキーワードは、ストアドプロシージャ内ではサポートされていません。
- TRANSACTION
-
オプションキーワード WORK と TRANSACTION は同義語です。ストアドプロシージャ内ではいずれもサポートされていません。
ストアドプロシージャ内での ROLLBACK の使用方法については、トランザクションの管理を参照してください。
例
次の例では、テーブルを作成し、データがそのテーブルに挿入されるトランザクションを開始します。次に ROLLBACK コマンドを実行すると、データ挿入がロールバックされ、テーブルは空の状態になります。
次のコマンドを実行すると、MOVIE_GROSS という名前のテーブルが作成されます。
create table movie_gross( name varchar(30), gross bigint );
次のコマンドセットを実行すると、2 つのデータ行をテーブルに挿入するトランザクションが開始されます。
begin; insert into movie_gross values ( 'Raiders of the Lost Ark', 23400000); insert into movie_gross values ( 'Star Wars', 10000000 );
その後、次のコマンドを実行すると、テーブルからデータが選択され、挿入が正常に実行されたことが示されます。
select * from movie_gross;
コマンド出力に、両方の行が正常に挿入されたことが示されます。
name | gross -------------------------+---------- Raiders of the Lost Ark | 23400000 Star Wars | 10000000 (2 rows)
このコマンドはデータ変更を、トランザクションの開始時点までロールバックします。
rollback;
テーブルからデータを選択すると、空のテーブルが表示されます。
select * from movie_gross; name | gross ------+------- (0 rows)