START TRANSACTSQL(-)Language Statements (2002START6TRANSACTION(l)
NAME
START TRANSACTION - start a transaction block
SYNOPSIS
START TRANSACTION [ ISOLATION LEVEL { READ COMMITTED | SERIALIZABLE } ]
INPUTS
None.
OUTPUTS
START TRANSACTION
Message returned if successful.
WARNING: BEGIN: already a transaction in progress
If there is already a transaction in progress when the
command is issued.
DESCRIPTION
This command begins a new transaction. If the isolation
level is specified, the new transaction has that isolation
level. In all other respects, the behavior of this command
is identical to the BEGIN [begin(l)] command.
NOTES
The isolation level of a transaction can also be set with
the SET TRANSACTION [set_transaction(l)] command. If no
isolation level is specified, the default isolation level is
used.
COMPATIBILITY
SQL99
SERIALIZABLE is the default isolation level in SQL99, but it
is not the usual default in PostgreSQL: the factory default
setting is READ COMMITTED. PostgreSQL does not provide the
isolation levels READ UNCOMMITTED and REPEATABLE READ.
Because of lack of predicate locking, the SERIALIZABLE level
is not truly serializable. See the User's Guide for details.
In SQL99 this statement can specify two other properties of
the new transaction: whether the transaction is read-only
and the size of the diagnostics area. Neither of these
concepts are currently supported in PostgreSQL.
Page 1 (printed 3/24/03)