SQL COMMAND · 事务控制
COMMIT
提交当前事务
COMMIT事务控制引入 10(基线)现存至 20 devel1 次语法变更
- 动词
COMMIT- 对象
—- 分组
- 事务控制
- 引入版本
- 10(基线)
- 状态
- 现存
- 语法变更次数
- 1
- 手册小节数
- 6
版本轨迹
相对 PostgreSQL 17 无变化。
语法铁道图 PostgreSQL 18
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]
描述
COMMIT提交当前事务。 该事务所做的所有更改都会对其他会话可见, 并且如果发生崩溃,也能保证其持久性。
参数
WORKTRANSACTION可选关键字,没有任何作用。
AND CHAIN如果指定了
AND CHAIN,则会立即启动一个新事务, 其事务特征与刚刚结束的事务相同(参见SET TRANSACTION)。 否则,不会启动任何新事务。
注解
使用ROLLBACK可中止一个事务。
在事务块之外发出COMMIT不会造成任何影响,但会产生一条警告消息。 事务块之外的COMMIT AND CHAIN则会报错。
示例
提交当前事务,并使所有更改永久生效:
COMMIT;
兼容性
命令COMMIT符合 SQL 标准。 形式COMMIT TRANSACTION是 PostgreSQL 扩展。
另见
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 19← 18正文更新
正文更新PostgreSQL 12← 11语法变化
+ COMMIT [ WORK | TRANSACTION ] [ AND [ NO ] CHAIN ]− COMMIT [ WORK | TRANSACTION ]正文更新PostgreSQL 11← 10正文更新
正文更新
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
ABORT | ABORT | — | 121 次 | |
| 中止当前事务 | 现存 | |||
BEGIN | BEGIN | — | — | |
| 开始一个事务块 | 现存 | |||
COMMIT | COMMIT | — | 121 次 | |
| 提交当前事务 | 现存 | |||
END | END | — | 121 次 | |
| 提交当前事务 | 现存 | |||
ROLLBACK | ROLLBACK | — | 121 次 | |
| 中止当前事务 | 现存 | |||
SAVEPOINT | SAVEPOINT | — | — | |
| 在当前事务中定义一个新的保存点 | 现存 | |||
SET CONSTRAINTS | SET | CONSTRAINTS | — | |
| 为当前事务设置约束检查时机 | 现存 | |||
WAIT FOR | WAIT | FOR | — | |
| 等待 WAL 达到目标 LSN | 现存 | |||
COMMIT PREPARED | COMMIT | PREPARED | — | |
| 提交一个先前为两阶段提交而预备的事务 | 现存 | |||
ROLLBACK PREPARED | ROLLBACK | PREPARED | — | |
| 回滚一个先前为两阶段提交而预备的事务 | 现存 | |||
RELEASE SAVEPOINT | RELEASE | SAVEPOINT | — | |
| 释放一个先前定义的保存点 | 现存 | |||
ROLLBACK TO SAVEPOINT | ROLLBACK | TO SAVEPOINT | — | |
| 回滚到一个保存点 | 现存 | |||
PREPARE TRANSACTION | PREPARE | TRANSACTION | — | |
| 为两阶段提交准备当前事务 | 现存 | |||
SET TRANSACTION | SET | TRANSACTION | — | |
| 设置当前事务的特性 | 现存 | |||
START TRANSACTION | START | TRANSACTION | — | |
| 开始一个事务块 | 现存 | |||