Перейти к содержимому

SET

SET изменяет уровень изоляции по умолчанию для текущего подключения.

SET { ISOLATION_LEVEL | ISOLATIONLEVEL | TRANSACTION_ISOLATION }
{ = | TO } { 'READ COMMITTED' | 'SNAPSHOT' }

Все три написания переменной указывают на одну локальную настройку подключения. Другие подключения, включая handles того же embedded-движка, сохраняют свои значения по умолчанию.

Значение должно быть строковым литералом READ COMMITTED или SNAPSHOT. Для выбора на одну транзакцию используйте BEGIN с явным уровнем изоляции.

Успех возвращает пустой командный результат. Новые транзакции без явного уровня используют обновлённое значение по умолчанию.

SET меняет уровень изоляции по умолчанию только для текущего подключения. Он не меняет уже открытую транзакцию и настройки соседних подключений.

Неизвестные имена переменных и уровни изоляции приводят к ошибке. Изменение настройки внутри активной транзакции также отклоняется, поэтому следующая транзакция получает однозначный connection-local default.

SET требует аутентифицированную сессию с CONNECT, но не объектное право.

SET ISOLATION_LEVEL = 'READ COMMITTED';
BEGIN;
ROLLBACK;

См. BEGIN, Транзакции и конкурентность и Конфигурацию.