START TRANSACTION — начало блока транзакции
START TRANSACTION [transaction_mode[, ...] ] гдеtransaction_modeпринимает одно из следующих значений: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE
Данная команда инициирует новый блок транзакции. Если указаны уровень изоляции, режим чтения/записи или режим откладывания, новая транзакция получает эти характеристики, как если бы команда SET TRANSACTION была выполнена. Эта команда идентична
команде BEGIN command.
Информацию о значении параметров этого оператора см. в разделе SET TRANSACTION for information on the meaning of the parameters to this statement.
Согласно стандарту, нет необходимости выполнять START TRANSACTION
для запуска блока транзакции: любая команда SQL неявно начинает блок.
Digital Q.DataBaseповедение можно рассматривать как неявное выполнение команды COMMIT после каждой команды, которая не следует за START TRANSACTION (или BEGIN),
и поэтому такой режим часто называют «autocommit».
Другие реляционные системы баз данных могут предлагать функционал автофиксации (autocommit)
для удобства.
Параметр DEFERRABLE
transaction_mode
является Digital Q.DataBase расширением языка.
Стандарт SQL требует наличия запятых между последовательными transaction_modes, но по историческим
причинам Digital Q.DataBase позволяет опускать запятые.
См. также раздел совместимости в SET TRANSACTION.