SQL COMMAND · 事务控制
BEGIN WORK
开始一个事务
Begins a transaction
BEGIN事务控制引入 6.4(基线)于 6.5 移除0 次语法变更
- 动词
BEGIN- 对象
WORK- 分组
- 事务控制
- 引入版本
- 6.4(基线)
- 状态
- 于 6.5 移除
- 语法变更次数
- 0
- 手册小节数
- 3
版本轨迹
6.4 是本数据集的收录基线,不代表该命令首次于 6.4 引入。
PostgreSQL 6.4 为历史版本,已结束维护。
语法铁道图 PostgreSQL 6.4
沿轨道从左向右阅读,分岔表示选择,绕行表示可选,回环表示重复。方框为参数,点击带下划线的参数可展开子规则。
语法概要
BEGIN [ WORK | TRANSACTION ]
描述
BEGIN 开启一个用户事务,Postgres 将保证它相对于所有并发执行的事务是可串行化的。Postgres 使用两阶段锁来完成这一任务。如果事务被提交,Postgres 将确保要么所有更新都完成,要么一个都不完成。事务具有标准的 ACID(原子性、一致性、隔离性、持久性)属性。
注意
关键字 TRANSACTION 只是 WORK 的一个修饰性替代。两个关键字都不必指定。
关于在事务中锁定表的进一步信息,请参阅
LOCK 语句。
使用 COMMIT 或 ROLLBACK
终止一个事务。
用法
开始一个用户事务:
BEGIN WORK;
兼容性
BEGIN
是 Postgres 语言扩展。
SQL92
SQL92 中没有显式的 BEGIN WORK 命令;事务的开启总是隐式的,它以 COMMIT 或 ROLLBACK 语句终止。
语法演化
相邻大版本之间的差异,新的在前。版本号链接到对应快照。
PostgreSQL 6.5← 6.4移除此命令
同组命令
| 命令 | 动词 | 对象 | 版本变动 | 最近变更 |
|---|---|---|---|---|
ABORT | ABORT | — | 123 次 | |
| 中止当前事务 | 现存 | |||
BEGIN | BEGIN | — | 9.13 次 | |
| 开始一个事务块 | 现存 | |||
COMMIT | COMMIT | — | 121 次 | |
| 提交当前事务 | 现存 | |||
END | END | — | 121 次 | |
| 提交当前事务 | 现存 | |||
ROLLBACK | ROLLBACK | — | 122 次 | |
| 中止当前事务 | 现存 | |||
SAVEPOINT | SAVEPOINT | — | — | |
| 在当前事务中定义一个新的保存点 | 现存 | |||
WAIT | WAIT | — | — | |
| 等待 WAL 达到目标 LSN | 现存 | |||
SET CONSTRAINTS | SET | CONSTRAINTS | 7.41 次 | |
| 为当前事务设置约束检查时机 | 现存 | |||
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 | 9.25 次 | |
| 设置当前事务的特性 | 现存 | |||
START TRANSACTION | START | TRANSACTION | 9.14 次 | |
| 开始一个事务块 | 现存 | |||
BEGIN WORK | BEGIN | WORK | — | |
| 开始一个事务 | 于 6.5 移除 | |||