BEGIN(7)
okay so bestie, this is the BEGIN(7) page from the PostgreSQL 16.15 docs, and itβs giving βtiny command, huge consequences.β π
πΈ NAME πΈ
BEGIN β start a transaction block. periodt. π
β¨ 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 π¦
So BEGIN initiates a transaction block. Translation: all statements after a BEGIN command will be executed in a single transaction until an explicit COMMIT or ROLLBACK is given. no cap. π«Ά
By default β meaning without BEGIN β PostgreSQL executes transactions in βautocommitβ mode. That means 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. bestie, itβs one and done. π
Statements are executed more quickly in a transaction block, because transaction start/commit requires significant CPU and disk activity. slay for performance π§. 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. the vibe stays all-or-nothing. β¨
If the isolation level, read/write mode, or deferrable mode is specified, the new transaction has those characteristics, as if SET TRANSACTION was executed. keep that in mind. π
π PARAMETERS π
WORKβ optional key word. It has no effect. literally decorative. πTRANSACTIONβ optional key word. It has no effect. same energy. β¨- Refer to
SET TRANSACTION(SET_TRANSACTION(7)) for information on the meaning of the other parameters to this statement. thatβs the lore. π
π NOTES π
START TRANSACTIONhas the same functionality asBEGIN. same slay, different name. π«Ά- Use
COMMITorROLLBACKto terminate a transaction block. do not leave it hanging, bestie. π - Issuing
BEGINwhen already inside a transaction block will provoke a warning message. The state of the transaction is not affected. so itβs loud, but not destructive. π - To nest transactions within a transaction block, use savepoints β see
SAVEPOINT(7). thatβs the move. π - For reasons of backwards compatibility, the commas between successive
transaction_modescan be omitted. cute. no notes. π
π EXAMPLES π
To begin a transaction block, you literally do:
BEGIN;
iconic. thatβs it. π¦
π COMPATIBILITY π
BEGINis a PostgreSQL language extension. It is equivalent to the SQL-standard commandSTART TRANSACTION, whose reference page contains additional compatibility information. iykyk. π- The
DEFERRABLEtransaction_mode is a PostgreSQL language extension. PostgreSQL stays extending β¨ - Incidentally, the
BEGINkey word is used for a different purpose in embedded SQL. You are advised to be careful about the transaction semantics when porting database applications. this is a friendly warning, not a drill. π¨
π SEE ALSO π
COMMIT(7)ROLLBACK(7)START TRANSACTION(START_TRANSACTION(7))SAVEPOINT(7)
go read these next, bestie. the cross-refs are iconic. π
π thatβs the whole BEGIN(7) page from the PostgreSQL 16.15 docs, dated 2026 β go forth and transact responsibly, bestie. π«Ά
π¦ where this page comes from
- opensuse-leap 16.0: postgresql16 16.15-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql16 16.15-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql16 16.15-160000.1.1 Β· PostgreSQL
- opensuse-leap 16.0: postgresql16 16.15-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