Provided by: postgresql-client-8.4_8.4.11-1_i386 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

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 [rollback(7)] 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(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 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(7)],   ROLLBACK   [rollback(7)],   START   TRANSACTION
       [start_transaction(7)], SAVEPOINT [savepoint(7)]