SQL Practice Logo

SQLPractice Online

Isolation Levels: Functions

Module: Data Modification & Transactions

Setting Isolation Level Syntax:

PostgreSQL:

-- Session level (affects all transactions in session)

SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL READ COMMITTED;

-- Transaction level (affects only current transaction)

BEGIN;

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

-- queries

COMMIT;

-- Or set at BEGIN

BEGIN TRANSACTION ISOLATION LEVEL SERIALIZABLE;

-- queries

COMMIT;

MySQL:

-- Session level

SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED;

-- Global level (affects all new sessions)

SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED;

-- Transaction level

SET TRANSACTION ISOLATION LEVEL REPEATABLE READ;

START TRANSACTION;

-- queries

COMMIT;

SQL Server:

-- Session level

SET TRANSACTION ISOLATION LEVEL READ COMMITTED;

-- Transaction level

BEGIN TRANSACTION;

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

-- queries

COMMIT;

-- Or use table hints (query level)

SELECT * FROM accounts WITH (READUNCOMMITTED);

SELECT * FROM accounts WITH (REPEATABLEREAD);

SELECT * FROM accounts WITH (SERIALIZABLE);

Oracle:

-- Transaction level (Oracle has only two isolation levels)

SET TRANSACTION ISOLATION LEVEL READ COMMITTED; -- Default

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;

-- Or use FOR UPDATE (row-level locking)