START TRANSACTION

Name

START TRANSACTION -- 开始一个事务块

Synopsis

START TRANSACTION [ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ]
  

输入

输出

START TRANSACTION

成功后返回的信息。

WARNING: BEGIN: already a transaction in progress

如果命令发出的时候已经有一个事务正在处理了,返回此信息。

描述

这条命令开始一个新的事务。如果声明了隔离级别,那么新事务 就使用那个隔离级别。在其它方面,这条命令的行为和 BEGIN 命令一样。

注意

一个事务的隔离级别也可以用 SET TRANSACTION 命令设置。如果没有声明隔离级别,那么使用缺省的隔离级别。

兼容性

SQL99

SERIALIZABLESQL99 中的缺省 隔离级别,但这不是 PostgreSQL 里的常用缺省: 出厂的缺省设置是 READ COMMITTED。 PostgreSQL 并不提供 READ UNCOMMITTEDREPEATABLE READ 隔离级别。同时,因为缺少断言锁定, SERIALIZABLE 级别也不是真正的可串行化的级别。 参阅用户手册获取细节。

SQL99 里,这个语句还可以声明另外两个 新事务的属性:这个事务是否只读以及诊断区的大小。目前, PostgreSQL 还不支持这两个概念。