企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
# START TRANSACTION ## Name START TRANSACTION -- 开始一个事务块 ## Synopsis ``` START TRANSACTION [ _transaction_mode_ [, ...] ] 这里的 `_transaction_mode_`是下列之一: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE ``` ## 描述 这条命令开始一个新的事务块。如果声明了隔离级别、读写模式或可推迟模式, 那么新事务就使用这些特性,如同执行了[SET TRANSACTION](#calibre_link-507)一样。 它和[BEGIN](#calibre_link-493)命令等价。 ## 参数 参阅[SET TRANSACTION](#calibre_link-507)获取有关这个语句参数含义的信息。 ## 兼容性 在标准里,没必要声明`START TRANSACTION`来开始一个事务块: 任何 SQL 语句都隐含地开始一个事务块。PostgreSQL 的行为可以认为是隐含地在每条没有跟在`START TRANSACTION`或`BEGIN` 后面的命令自动发出一条`COMMIT`,因此这个行为常被称作"自动提交"。 其它关系数据库系统可能也提供自动提交这一方便的特性。 `DEFERRABLE` `_transaction_mode_` 是一个PostgreSQL语言扩展。 SQL 标准要求在相连的`_transaction_modes_` 之间有逗号,但是出于历史原因,PostgreSQL允许省略这个逗号。 又见[SET TRANSACTION](#calibre_link-507)的兼容性小节。 ## 又见 [BEGIN](#calibre_link-493), [COMMIT](#calibre_link-494), [ROLLBACK](#calibre_link-495), [SAVEPOINT](#calibre_link-1310), [SET TRANSACTION](#calibre_link-507)