历史版本。 PostgreSQL 6.4 已结束支持。 请参阅 当前版本手册.
BEGIN WORK
BEGIN WORK — 开始一个事务
大纲
BEGIN [ WORK | TRANSACTION ]
输入
无
输出
- →
BEGIN 这表示一个新的事务已经启动。
- →
NOTICE: BeginTransactionBlock and not in default state 这表示已经有一个事务在进行中。当前事务不受影响。
描述
BEGIN 开启一个用户事务,Postgres 将保证它相对于所有并发执行的事务是可串行化的。Postgres 使用两阶段锁来完成这一任务。如果事务被提交,Postgres 将确保要么所有更新都完成,要么一个都不完成。事务具有标准的 ACID(原子性、一致性、隔离性、持久性)属性。
注意
关键字 TRANSACTION 只是 WORK 的一个修饰性替代。两个关键字都不必指定。
关于在事务中锁定表的进一步信息,请参阅
LOCK 语句。
使用 COMMIT 或 ROLLBACK
终止一个事务。
用法
开始一个用户事务:
BEGIN WORK;
兼容性
BEGIN
是 Postgres 语言扩展。
SQL92
SQL92 中没有显式的 BEGIN WORK 命令;事务的开启总是隐式的,它以 COMMIT 或 ROLLBACK 语句终止。