begin

TriggerTek Logo
abcdefghijklmnopqrstuvwxyz_
BEGIN()				 SQL Commands			      BEGIN()



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(7)]  or ROLLBACK [rollback(l)] is given.  By
       default (without BEGIN), PostgreSQL executes transactions  in  ‘‘auto-
       commit’’ mode, that is, each statement is executed in its own transac-
       tion 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	 ses-
       sions  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(7)] has the same functionality as
       BEGIN.

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



SQL - Language Statements	  2008-01-03			      BEGIN()