Skip site navigation (1)Skip section navigation (2)

  
 
  

home | help
BEGIN(7)		  PostgreSQL 18.6 Documentation 		BEGIN(7)

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
	 [ NOT ] DEFERRABLE

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
     or  ROLLBACK  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 trans-
     action start/commit requires significant CPU and disk  activity.  Execution
     of  multiple  statements inside a transaction is also useful to ensure con-
     sistency 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, read/write mode, or deferrable mode is specified,
     the new transaction has those characteristics, as if  SET	TRANSACTION  was
     executed.

PARAMETERS
     WORK
     TRANSACTION
	 Optional key words. They have no effect.

     Refer  to SET TRANSACTION (SET_TRANSACTION(7)) for information on the mean-
     ing of the other parameters to this statement.

NOTES
     START TRANSACTION has the same functionality as BEGIN.

     Use COMMIT or ROLLBACK to terminate a transaction block.

     Issuing BEGIN when already inside a transaction block will provoke a  warn-
     ing message. The state of the transaction is not affected. To nest transac-
     tions within a transaction block, use savepoints (see 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-stan-
     dard command START TRANSACTION, whose reference  page  contains  additional
     compatibility information.

     The DEFERRABLE transaction_mode is a PostgreSQL language extension.

     Incidentally,  the BEGIN key word is used for a different purpose in embed-
     ded SQL. You are advised to be careful about the transaction semantics when
     porting database applications.

SEE ALSO
     COMMIT(7), ROLLBACK(7),  START  TRANSACTION  (START_TRANSACTION(7)),  SAVE-
     POINT(7)

PostgreSQL 18.6 		      2026				BEGIN(7)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=BEGIN&sektion=7&manpath=FreeBSD+Ports+15.1.quarterly>

home | help