↑↓ 选择↵ 打开⌫ 切换范围完整搜索

PG.CENTER 连接 PostgreSQL 文档、百科与生态知识。由 Pigsty 维护。

支持中的版本: 当前版本 (18) / 17 / 16 / 15 / 14
开发中的版本: 19 / 20devel
已结束支持的版本: 13 / 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3 / 7.2 / 7.1 / 7.0 / 6.5 / 6.4
预发布版本文档。 PostgreSQL 19beta4 为测试版本,最终发布内容可能有所不同。

COMMIT

COMMIT — 提交当前事务

大纲

COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]

描述

COMMIT 提交当前事务。该事务所做的所有更改都会对其他会话可见,并且如果发生崩溃,也能保证其持久性。

如果该事务处于已中止状态,则不会做出任何更改,且 COMMIT 的效果将与 ROLLBACK 完全相同,包括命令标签输出在内。

无论哪种情况,如果指定了 AND CHAIN 参数,都会启动一个配置完全相同的新事务。

有关事务的更多信息,见第 3.4 节。

参数

WORK
TRANSACTION #

可选关键字,没有任何作用。

AND CHAIN #

如果指定了 AND CHAIN,则会立即启动一个新事务,其事务特征与刚刚结束的事务相同(参见 SET TRANSACTION)。否则,不会启动任何新事务。

输出

当未中止的事务成功完成时,COMMIT 命令返回如下形式的命令标签:

COMMIT

但是,在已中止的事务中,COMMIT 命令返回如下形式的命令标签:

ROLLBACK

注解

使用 ROLLBACK 可中止一个事务。

在事务块之外发出 COMMIT 不会造成任何影响,但会产生一条警告消息。事务块之外的 COMMIT AND CHAIN 则会报错。

示例

提交当前事务,并使所有更改永久生效:

COMMIT;

兼容性

命令 COMMIT 符合 SQL 标准,但有一个例外:当事务已被中止时,不会引发异常条件。

形式 COMMIT TRANSACTION 是 PostgreSQL 扩展。

报告文档问题

阅读 上游文档. 反馈更正前请先核对 当前版本手册.