更新时间:2024-11-12 GMT+08:00
分享

ROLLBACK

功能描述

回滚当前事务并取消当前事务中的所有更新。

在事务运行的过程中发生了某种故障,事务不能继续执行,系统将事务中对数据库的所有已完成的操作全部撤销,数据库状态回到事务开始时。

注意事项

如果不在一个事务内部发出ROLLBACK就不会有问题,但是将抛出一个NOTICE信息。

语法格式

ROLLBACK [ WORK | TRANSACTION ];

参数说明

WORK | TRANSACTION

可选关键字。除了增加可读性,没有任何其他作用。

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
--创建表。
gaussdb=# CREATE TABLE test (id int, name text);

--开启一个事务。
gaussdb=# START TRANSACTION;

--修改表结构。
gaussdb=# ALTER TABLE test ADD COLUMN score int;

--查看表结构。
gaussdb=# \d test;
     Table "public.test"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 
 name   | text    | 
 score  | integer | 
 

--回滚。
gaussdb=# ROLLBACK;

--表结构恢复初始状态。
gaussdb=# \d test;
     Table "public.test"
 Column |  Type   | Modifiers 
--------+---------+-----------
 id     | integer | 
 name   | text    | 
 
--删除test表。
gaussdb=# DROP TABLE test;

相关链接

COMMIT | END

相关文档