更新时间:2024-08-20 GMT+08:00

COMMIT PREPARED

功能描述

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

注意事项

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

语法格式

1
COMMIT PREPARED transaction_id [ WITH commit_sequence_number ];

参数说明

  • transaction_id

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

  • commit_sequence_number

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

示例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
--开始。
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;