2025年9月25日: PostgreSQL 18 釋出!
支援的版本: 當前 (18) / 17 / 16 / 15 / 14 / 13
開發版本: devel
不支援的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4 / 7.3

START TRANSACTION

START TRANSACTION — 開始一個事務塊

概要

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 的行為可以看作是在每個不跟隨 START TRANSACTION(或 BEGIN)的命令之後隱式地發出一個 COMMIT,因此它通常被稱為“autocommit”。其他關係資料庫系統可能會提供 autocommit 功能作為一種便利。

DEFERRABLE 事務模式是 PostgreSQL 語言的擴充套件。

SQL 標準要求在連續的 transaction_modes 之間使用逗號分隔,但出於歷史原因,PostgreSQL 允許省略逗號。

另請參閱 SET TRANSACTION 的相容性部分。

提交更正

如果您在文件中看到任何不正確、與您對特定功能的體驗不符或需要進一步澄清的內容,請使用 此表單 報告文件問題。