SQL Commands / Transactions
START TRANSACTION
Read the PG 18 manualstart a transaction block
Reading PG 18current·documented in 25 of 30 versions, 7.3 to 20
Syntax
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
Syntax diagrams
Read left to right. Branches are choices, bypasses are optional, loops repeat. Select an underlined parameter to open its rule.
transaction_mode
Description
This command begins a new transaction block. If the isolation level, read/write mode, or deferrable mode is specified, the new transaction has those characteristics, as if SET TRANSACTION was executed. This is the same as the BEGIN command.
Parameters
Refer to SET TRANSACTION for information on the meaning of the parameters to this statement.
Compatibility
In the standard, it is not necessary to issue START TRANSACTION to start a transaction block: any SQL command implicitly begins a block. PostgreSQL's behavior can be seen as implicitly issuing a COMMIT after each command that does not follow START TRANSACTION (or BEGIN), and it is therefore often called “autocommit”. Other relational database systems might offer an autocommit feature as a convenience.
The DEFERRABLE transaction_mode is a PostgreSQL language extension.
The SQL standard requires commas between successive transaction_modes, but for historical reasons PostgreSQL allows the commas to be omitted.
See also the compatibility section of SET TRANSACTION.
See Also
BEGIN, COMMIT, ROLLBACK, SAVEPOINT, SET TRANSACTIONVersion history 7
Related entries
Definition snapshot: b7bd9cda · English manual source