DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

begin(5)





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 ``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.

       If the isolation level or read/write mode is specified, the new  trans-
       action  has  those characteristics, as if SET TRANSACTION [set_transac-
       tion(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  trans-
       action 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)], whose refer-
       ence page contains 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)]

SQL - Language Statements         2008-06-08                           BEGIN()

Man(1) output converted with man2html