BEGIN() SQL Commands 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(7)] or ROLLBACK [roll-
back(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 com-
mit is implicitly performed at the end of the statement (if execution was successful, oth-
erwise 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(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 [commit(7)] or ROLLBACK [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 [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 PostgreSQL language extension. It is equivalent to the SQL-standard command
START TRANSACTION [start_transaction(7)], whose reference page contains additional compat-
ibility 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(7)], ROLLBACK [rollback(l)], START TRANSACTION [start_transaction(l)],
SAVEPOINT [savepoint(l)]
SQL - Language Statements 2011-09-22 BEGIN()
Generated by $Id: phpMan.php,v 4.49 2006/02/26 13:18:18 chedong Exp $ Author: Che Dong
On Apache
Under GNU General Public License
2012-05-21 21:29 @38.107.179.240 Crawled by CCBot/1.0 (+http://www.commoncrawl.org/bot.html)