DOC HOME SITE MAP MAN PAGES GNU INFO SEARCH PRINT BOOK
 

/usr/man/cat.l/begin.l.Z(/usr/man/cat.l/begin.l.Z)





NAME

       BEGIN - start a transaction block


SYNOPSIS

       BEGIN [ WORK | TRANSACTION ]


DESCRIPTION

       BEGIN  initiates  a  transaction  block,  that is, all statements after
       BEGIN command will  be  executed  in  a  single  transaction  until  an
       explicit  COMMIT  [commit(l)]  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.


PARAMETERS

       WORK

       TRANSACTION
              Optional key words. They have no effect.


NOTES

       START TRANSACTION [start_transaction(l)] has the same functionality  as
       BEGIN.

       Use  COMMIT [commit(l)] or ROLLBACK [rollback(l)] 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.


EXAMPLES

       To begin a transaction block:

       BEGIN;


COMPATIBILITY

       BEGIN  is  a  PostgreSQL language extension. There is no explicit BEGIN
       command in the SQL standard; transaction initiation is always  implicit
       and it terminates either with a COMMIT or ROLLBACK statement.

       Other  relational database systems may offer an autocommit feature as a
       convenience.

       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(l)], ROLLBACK [rollback(l)]

SQL - Language Statements         2003-11-02                          BEGIN(l)

Man(1) output converted with man2html