PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

START TRANSACTION

START TRANSACTION — 开始一个事务块

Synopsis

START TRANSACTION [ transaction_mode [, ...] ]

where transaction_mode is one of:

    ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
    READ WRITE | READ ONLY
    [ NOT ] DEFERRABLE

描述

该命令开始一个新的事务块。如果指定了隔离级别、读/写模式或者可延迟模式,新事务就会具有那些特性,就像执行过 SET TRANSACTION 一样。这与 BEGIN 命令相同。

参数

有关该语句各参数含义的信息,请参考 SET TRANSACTION。

兼容性

在标准中,并不需要发出 START TRANSACTION 来开始一个事务块:任何 SQL 命令都会隐式地开始一个块。PostgreSQL 的行为可以被看作是在每个命令之后都隐式地发出一个 COMMIT,只要该命令并非跟在 START TRANSACTION(或 BEGIN)之后,因此它常被称为“自动提交”。为了方便起见,其他关系数据库系统也可能提供自动提交特性。

DEFERRABLE transaction_mode 是一种 PostgreSQL 语言扩展。

SQL 标准要求连续的 transaction_modes 之间用逗号分隔,但出于历史原因,PostgreSQL 允许省略这些逗号。

另请参见 SET TRANSACTION 的兼容性一节。

另请参阅

BEGIN, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTION