 |
Index for Section 5 |
|
 |
Alphabetical listing for B |
|
 |
Bottom of page |
|
BEGIN()
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
DESCRIPTION
BEGIN initiates a transaction block, that is, all statements after a BEGIN
command will be executed in a single transaction until an explicit COMMIT
[commit(5)] or ROLLBACK [rollback(l)] is given. By default (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 or read/write mode is specified, the new transaction
has those characteristics, as if SET TRANSACTION [set_transaction(5)] was
executed.
PARAMETERS
WORK
TRANSACTION
Optional key words. They have no effect.
Refer to SET TRANSACTION [set_transaction(5)] for information on the
meaning of the other parameters to this statement.
NOTES
START TRANSACTION [start_transaction(5)] has the same functionality as
BEGIN.
Use COMMIT [commit(5)] or ROLLBACK [rollback(5)] 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
[savepoint(5)]).
For reasons of backwards compatibility, the commas between successive
transaction_modes may 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(5)], which see for
additional compatibility information.
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(5)], ROLLBACK [rollback(l)], START TRANSACTION
[start_transaction(l)], SAVEPOINT [savepoint(l)]
 |
Index for Section 5 |
|
 |
Alphabetical listing for B |
|
 |
Top of page |
|