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)