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 );

下一组命令启动将两个数据行插入到表中的事务:

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)