Привет, Я DocuDroid!
Оценка ИИ поиска
Спасибо за оценку нашего ИИ поиска!
Мы будем признательны, если вы поделитесь своими впечатлениями, чтобы мы могли улучшить наш ИИ поиск для вас и других читателей.
GitHub

START TRANSACTION

Начинает блок транзакции.

Синтаксис

START TRANSACTION [<transaction_mode>] [READ WRITE | READ ONLY]

где transaction_mode:

ISOLATION LEVEL {SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED}

Описание

START TRANSACTION начинает новый блок транзакций. Если указан уровень изоляции или режим чтения/записи, новая транзакция получит эти характеристики, как при выполнении команды SET TRANSACTION. Данная команда равнозначна команде BEGIN.

Параметры

Параметр Описание

READ UNCOMMITTED

READ COMMITTED

REPEATABLE READ

SERIALIZABLE

Стандарт SQL определяет четыре уровня изоляции транзакций: READ UNCOMMITTED, READ COMMITTED, REPEATABLE READ и SERIALIZABLE.

READ UNCOMMITTED позволяет транзакциям видеть изменения, внесенные незафиксированными параллельными транзакциями. В Greengage DB это невозможно, поэтому READ UNCOMMITTED обрабатывается так же, как READ COMMITTED.

READ COMMITTED, уровень изоляции по умолчанию в Greengage DB, гарантирует, что оператор может видеть только те строки, которые были зафиксированы до его начала. Одно и то же выполнение оператора дважды в рамках одной транзакции может привести к разным результатам, если другая параллельная транзакция будет зафиксирована после первого выполнения оператора.

Уровень изоляции REPEATABLE READ гарантирует, что транзакция может видеть только строки, зафиксированные до ее начала. REPEATABLE READ — это самый строгий уровень изоляции транзакций, поддерживаемый Greengage DB. Приложения, использующие уровень изоляции REPEATABLE READ, должны быть готовы к повторению транзакций из-за сбоев сериализации.

Уровень изоляции SERIALIZABLE гарантирует, что выполнение нескольких параллельных транзакций приводит к тем же результатам, что и последовательное выполнение тех же транзакций (когда транзакции выполняются одна за другой). Если указан SERIALIZABLE, Greengage DB вернется к уровню REPEATABLE READ

READ WRITE

READ ONLY

Определяет, будет ли транзакция читать и писать данные или только читать. По умолчанию используется режим чтения/записи. При режиме только чтения запрещены следующие команды SQL: INSERT, UPDATE, DELETE и COPY FROM, если таблица, в которую будут записываться данные, не является временной; все команды CREATE, ALTER и DROP; GRANT, REVOKE, TRUNCATE; а также EXPLAIN ANALYZE и EXECUTE, если команда, которую они должны выполнить, относится к вышеперечисленным

Примеры

Начало блока транзакции:

START TRANSACTION;

Совместимость

Согласно стандарту, чтобы начать блок транзакции, необязательно выполнять START TRANSACTION: любая команда SQL неявно начинает блок. Поведение Greengage DB можно представить как неявное выполнение COMMIT после каждой команды, которая не следует за START TRANSACTION (или BEGIN), и поэтому такое поведение часто называется "автофиксацией". Другие реляционные СУБД могут предлагать автофиксацию как удобную возможность.

Стандарт SQL требует использования запятых между последовательными значениями transaction_mode, но по историческим причинам Greengage DB позволяет опустить запятые.

Дополнительную информацию можно посмотреть в разделе Совместимость описания SET TRANSACTION.

См. также