/usr/man/cat.l/begin.l.Z(/usr/man/cat.l/begin.l.Z)
NAME
BEGIN - start a transaction block
SYNOPSIS
BEGIN [ WORK | TRANSACTION ]
DESCRIPTION
BEGIN initiates a transaction block, that is, all statements after
BEGIN command will be executed in a single transaction until an
explicit COMMIT [commit(l)] or ROLLBACK [rollback(l)] is given. By
default (without BEGIN), PostgreSQL executes transactions in ``autocom-
mit'' 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.
PARAMETERS
WORK
TRANSACTION
Optional key words. They have no effect.
NOTES
START TRANSACTION [start_transaction(l)] has the same functionality as
BEGIN.
Use COMMIT [commit(l)] or ROLLBACK [rollback(l)] to terminate a trans-
action block.
Issuing BEGIN when already inside a transaction block will provoke a
warning message. The state of the transaction is not affected.
EXAMPLES
To begin a transaction block:
BEGIN;
COMPATIBILITY
BEGIN is a PostgreSQL language extension. There is no explicit BEGIN
command in the SQL standard; transaction initiation is always implicit
and it terminates either with a COMMIT or ROLLBACK statement.
Other relational database systems may offer an autocommit feature as a
convenience.
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 [commit(l)], ROLLBACK [rollback(l)]
SQL - Language Statements 2003-11-02 BEGIN(l)
Man(1) output converted with
man2html