
# ROLLBACK
#### 功能描述
回滚当前事务并取消当前事务中的所有更新。
在事务运行的过程中发生了某种故障，事务不能继续执行，系统将事务中对数据库的所有已完成的操作全部撤销，数据库状态回到事务开始时。
#### 注意事项
如果不在一个事务内部发出ROLLBACK就不会有问题，但是将抛出一个NOTICE信息。
#### 语法格式
```
ROLLBACK [ WORK | TRANSACTION ];
```
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/figure/zh-cn_image_0000002558217121.png)
#### 参数说明
**WORK \| TRANSACTION**
可选关键字。除了增加可读性，没有任何其他作用。
#### 示例
```
--创建表。
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](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/gaussdb-12-0529.html#ZH-CN_TOPIC_0000002558946001)
