BEGIN(7)
BEGIN(7) β start a transaction block π
okay so welcome to the BEGIN(7) page from the PostgreSQL 13.23 Documentation, bestie β we're talking transaction blocks and you're gonna get it π
πΈ NAME πΈ
BEGIN β start a transaction block
β¨ SYNOPSIS β¨
BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]
where transaction_mode is one of:
ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED }
READ WRITE | READ ONLY
[ NOT ] DEFERRABLE
π DESCRIPTION π
okay so BEGIN initiates a transaction block. That means every statement after a BEGIN command gets executed in a single transaction until an explicit COMMIT(7) or ROLLBACK(7) is given. No cap.
By default β like, without BEGIN β PostgreSQL executes transactions in βautocommitβ mode, that is, each statement is executed in its own transaction and a commit is implicitly performed at the end of the statement (if execution was successful, otherwise a rollback is done).
Statements are executed more quickly in a transaction block, because transaction start/commit requires significant CPU and disk activity. Execution of multiple statements inside a transaction is also useful to ensure consistency when making several related changes: other sessions will be unable to see the intermediate states wherein not all the related updates have been done.
If the isolation level, read/write mode, or deferrable mode is specified, the new transaction has those characteristics, as if SET TRANSACTION (SET_TRANSACTION(7)) was executed.
π PARAMETERS π
WORKβ optional key word. It has no effect. Literally zero effect, bestie πTRANSACTIONβ optional key word. It also has no effect. Same energy β¨
Refer to SET TRANSACTION (SET_TRANSACTION(7)) for information on the meaning of the other parameters to this statement.
π¦ NOTES π¦
START TRANSACTION (START_TRANSACTION(7)) has the same functionality as BEGIN.
Use COMMIT(7) or ROLLBACK(7) to terminate a transaction block.
IssuingBEGINwhen already inside a transaction block will provoke a warning message. The state of the transaction is not affected. To nest transactions within a transaction block, use savepoints (seeSAVEPOINT(7)).
For reasons of backwards compatibility, the commas between successive transaction_modes can be omitted.
π EXAMPLES π
To begin a transaction block:
BEGIN;
β COMPATIBILITY β
BEGIN is a PostgreSQL language extension. It is equivalent to the SQL-standard command START TRANSACTION (START_TRANSACTION(7)), whose reference page contains additional compatibility information.
The DEFERRABLE transaction_mode is a PostgreSQL language extension.
Incidentally, the BEGIN key word is used for a different purpose in embedded SQL. You are advised to be careful about the transaction semantics when porting database applications.
π SEE ALSO π
COMMIT(7)ROLLBACK(7)START TRANSACTION (START_TRANSACTION(7))SAVEPOINT(7)
π thatβs the whole BEGIN(7) vibe, sourced from PostgreSQL 13.23, dated 2025 β go forth and commit (or rollback), bestie! π
β¨
π¦ where this page comes from
- opensuse-leap 16.0: postgresql13 13.23-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql13 13.23-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql13 13.23-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql13 13.23-160000.1.1 Β· PostgreSQL
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms