GaussDB-COMMIT PREPARED

21 阅读1分钟

GaussDB-COMMIT PREPARED

功能描述

提交一个早先为两阶段提交准备好的事务。该功能为内部使用功能,不建议用户使用。

注意事项
  • 该功能仅在维护模式(GUC参数xc_maintenance_mode为on时)下可用。该模式谨慎打开,一般供维护人员排查问题使用,一般用户不应使用该模式。
  • 命令执行者必须是该事务的创建者或系统管理员,且创建和提交操作可以不在同一个会话中。
  • 事务功能由数据库自动维护,不应显式使用事务功能。
语法格式

| ``` COMMIT PREPARED transaction_id [ WITH commit_sequence_number ];

| ------------------------------------------------------------------------ |

![](https://p6-xtjj-sign.byteimg.com/tos-cn-i-73owjymdk6/8170742d9d5940cbb9f0178d35e68c5b~tplv-73owjymdk6-jj-mark-v1:0:0:0:0:5o6Y6YeR5oqA5pyv56S-5Yy6IEAgamVycnl3YW5nMTk4Mw==:q75.awebp?rk3s=f64ab15b&x-expires=1771379721&x-signature=VoC9tlFU80skF402ulMNV37zAaw%3D)

#### 参数说明

-   **transaction_id**

    待提交事务的标识符。它不能和任何当前预备事务已经使用了的标识符同名。

<!---->

-   **commit_sequence_number**

    待提交事务的序列号。它是一个64位递增无符号数。

#### 示例

| ```
--开始。 gaussdb=# BEGIN;  --准备标识符为的trans_test的事务。 gaussdb=# PREPARE TRANSACTION 'trans_test';  --创建表。 gaussdb=# CREATE TABLE item1(id int);  --提交标识符为的trans_test的事务。 gaussdb=# COMMIT PREPARED 'trans_test';  --删除表。 gaussdb=# DROP TABLE item1; 
``` |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |

#### 相关链接

[PREPARE TRANSACTION](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0657.html#ZH-CN_TOPIC_0000001911586549),[ROLLBACK PREPARED](https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/devg-dist/gaussdb-12-0670.html#ZH-CN_TOPIC_0000001911665661)。

更多详情请参考GaussDB 文档中心:<https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30/productdesc/qlh_03_0001.html>