FirebirdSQL logo

Transaction Name

The optional NAME attribute defines the name of a transaction.Use of this attribute is available only in Embedded SQL (ESQL).In ESQL applications, named transactions make it possible to have several transactions active simultaneously in one application.If named transactions are used, a host-language variable with the same name must be declared and initialized for each named transaction.This is a limitation that prevents dynamic specification of transaction names and thus rules out transaction naming in DSQL.

Transaction Parameters

The main parameters of a transaction are:

  • data access mode (READ WRITE, READ ONLY)

  • lock resolution mode (WAIT, NO WAIT) with an optional LOCK TIMEOUT specification

  • isolation level (READ COMMITTED, SNAPSHOT, SNAPSHOT TABLE STABILITY).

    Note

    The READ UNCOMMITTED isolation level is a synonym for READ COMMITTED, and is provided only for syntax compatibility.It provides identical semantics as READ COMMITTED, and does not allow you to view uncommitted changes of other transactions.

  • a mechanism for reserving or releasing tables (the RESERVING clause)

Access Mode

The two database access modes for transactions are READ WRITE and READ ONLY.

  • If the access mode is READ WRITE, operations in the context of this transaction can be both read operations and data update operations.This is the default mode.

  • If the access mode is READ ONLY, only SELECT operations can be executed in the context of this transaction.Any attempt to change data in the context of such a transaction will result in database exceptions.However, this does not apply to global temporary tables (GTT), which are allowed to be changed in READ ONLY transactions, see Global Temporary Tables (GTT) in [fblangref50-ddl] for details.

Lock Resolution Mode

When several client processes work with the same database, locks may occur when one process makes uncommitted changes in a table row, or deletes a row, and another process tries to update or delete the same row.Such locks are called update conflicts.

Locks may occur in other situations when multiple transaction isolation levels are used.

The two lock resolution modes are WAIT and NO WAIT.