# COMMIT PREPARED
#### 功能描述
提交一个预先为两阶段提交准备的事务。
#### 注意事项
- 该功能为内部使用功能，不建议用户使用。
- 该功能仅在维护模式（GUC参数xc_maintenance_mode为on时）下可用，该模式仅供维护人员排查问题使用，一般用户不应使用该模式。
- 命令执行者必须是该事务的创建者或系统管理员，且创建和提交操作允许在不同会话中执行。
- 事务功能由数据库自动维护，不应显式使用事务功能。
 
#### 语法格式
```
COMMIT PREPARED transaction_id [ WITH commit_sequence_number ];
```
![](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/figure/zh-cn_image_0000002793788295.png "点击放大")
#### 参数说明
- **transaction_id**
  待提交事务的标识符。不能和任何当前预备事务已经使用了的标识符同名。
  

- **commit_sequence_number**
  待提交事务的序列号，为一个64位递增的无符号数。
  
 
#### 示例
```
--开始。
gaussdb=# SET XC_MAINTENANCE_MODE = ON;
SET
gaussdb=# BEGIN;
--创建表。
gaussdb=# CREATE TABLE item1(id int);
--准备标识符为的trans_test的事务。
gaussdb=# PREPARE TRANSACTION 'trans_test';
--查询表item1，这里应该访问不到。
gaussdb=# SELECT * FROM item1;
ERROR:  Relation "item1" does not exist on test.
LINE 1: SELECT * FROM item1;
--提交标识符为的trans_test的事务。
gaussdb=# COMMIT PREPARED 'trans_test';
--查询表item1，这里应该可以访问。
gaussdb=# SELECT * FROM item1;
 a 
---
(0 rows)
--删除表。
gaussdb=# DROP TABLE item1;
```
#### 相关链接
[PREPARE TRANSACTION](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0362.html)，[ROLLBACK PREPARED](https://support.huaweicloud.com/distributed-ref-v10-gaussdb/gaussdb-08-0376.html)
