Name

SET TRANSACTION

Synopsis

The SET TRANSACTION statement controls many characteristics of a data modification, such as read/write or its isolation level.

Vendor

Command

SQL Server

Supported, with variations

MySQL

Not supported

Oracle

Supported, with limitations

PostgreSQL

Supported

SQL99 Syntax and Description

SET [LOCAL] TRANSACTION { {READ ONLY | READ WRITE}[,...]
| ISOLATION LEVEL 
  {READ COMMITTED 
  | READ UNCOMMITTED 
  | REPEATABLE READ
  | SERIALIZABLE}[,...]
| DIAGNOSTIC SIZE INT};

When issued, this command is outside the context of a transaction but applies to the next valid transaction. More than one option may be applied with this command, each separated by a comma.

The transaction settings may be applied only to the local server via the LOCAL command. Otherwise, the transaction settings are assumed to apply regardless of where the transaction is run. This option is new to SQL99.

A transaction also can be specified as READ ONLY or READ WRITE. The DIAGNOSTIC SIZE clause, followed by an integer, designates the specific number of error messages to capture for a transaction. The GET DIAGNOSTICS statement retrieves this information.

The ISOLATION LEVEL clause controls a number of behaviors in a transaction concerning concurrent transactions. Isolation levels control how transactions behave with regards to dirty reads, non-repeatable reads, and phantom records:

Dirty reads

Occur when a transaction reads the altered records of another transaction before the other transaction ...

Get SQL in a Nutshell now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.