ROLLBACK - Amazon Redshift

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)