SET TRANSACTION
SET TRANSACTION
Выбор уровня изоляции текущей транзакции.
Синтаксис
SET TRANSACTION ISOLATION LEVEL
{ READ COMMITTED | SERIALIZABLE }
SET SESSION CHARACTERISTICS AS TRANSACTION ISOLATION LEVEL
{ READ COMMITTED | SERIALIZABLE }
Параметры
- READ COMMITED. Командам видны изменения, зафиксированные в базе данных до начала транзакции. Режим используется по умолчанию.
- SERIALIZABLE. Командам видны записи, зафиксированные в базе данных до выполнения первой команды DML в транзакции.
Результаты
SET VARIABLE. Это сообщение выдается при успешном изменении режима транзакции. Команда SHOW TRANSACTION ISOLATION LEVEL выводит текущее значение режима изоляции (READ COMMITED или SERIALIZABLE).
Описание
Команда SET TRANSACTION задает уровень изоляции текущей транзакции. Изменение действует только в текущей транзакции; режимы изоляции следующих транзакций должны задаваться отдельно, поскольку по умолчанию действует режим READ COMMITED.
Команда SET TRANSACTION должна вызываться раньше первой команды DML в блоке. К категории DML относятся команды SELECT, INSERT, DELETE, UPDATE, FETCH и COPY.
Чтобы сменить уровень изоляции для всего сеанса (а не в отдельной транзакции), воспользуйтесь командой SET SESSION CHARACTERISTICS с параметром READ COMMITED или SERIALIZABLE. Выполнение команды SET TRANSACTION в транзакции временно переопределяет значение, установленное по умолчанию.
При выборе уровня изоляции READ COMMITED во всех командах транзакции «видны» только те записи, которые были зафиксированы до начала транзакции. При установке уровня изоляции SERIALIZABLE в командах транзакции также видны изменения, внесенные в базу данных до выполнения первой команды DML данной транзакции.