trusty (7) BEGIN.7.gz

Provided by: postgres-xc-client_1.1-2ubuntu2_amd64 bug

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

           Note
           The following description applies both to Postgres-XC and PostgreSQL if not described explicitly.

       BEGIN initiates a transaction block, that is, all statements after a BEGIN command will be executed in a
       single transaction until an explicit COMMIT(7) or ROLLBACK(7) is given. By default (without BEGIN),
       Postgres-XC 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, TRANSACTION
           Optional key words. They have no effect.

       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.

       Issuing BEGIN when 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 (see
       SAVEPOINT(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 Postgres-XC language extension. It is equivalent to the SQL-standard command START TRANSACTION
       (START_TRANSACTION(7)), whose reference page contains additional compatibility information.

       The DEFERRABLEtransaction_mode is a Postgres-XC 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)