START TRANSACTION
START TRANSACTION — начать блок транзакции
Синтаксис
START [ AUTONOMOUS ] TRANSACTION [режим_транзакции[, ...] ] Гдережим_транзакцииможет быть следующим: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED | READ UNCOMMITTED } READ WRITE | READ ONLY [ NOT ] DEFERRABLE
Описание
Эта команда начинает новый блок транзакции. Если указан уровень изоляции, режим чтения/записи или допустимость откладывания транзакции, новая транзакция получит эти характеристики, как при выполнении команды SET TRANSACTION. Данная команда равнозначна команде BEGIN.
В случае указания необязательного ключевого слова AUTONOMOUS начинается автономная транзакция. Автономная транзакция может выполняться только внутри другой транзакции. За подробностями обратитесь к Главе 16.
Параметры
За описанием параметров этого оператора обратитесь к SET TRANSACTION.
Совместимость
Согласно стандарту, выполнять START TRANSACTION, чтобы начать блок транзакции, необязательно: блок неявно начинает любая команда SQL. Поведение Postgres Pro можно представить как неявное выполнение COMMIT после каждой команды, которой не предшествует START TRANSACTION (или BEGIN), и поэтому такое поведение часто называется «автофиксацией». Другие реляционные СУБД тоже могут предлагать автофиксацию как удобную возможность.
Значение DEFERRABLE параметра режим_транзакции является языковым расширением Postgres Pro.
Стандарт SQL требует, чтобы последовательные режимы_транзакций разделялись запятыми, но по историческим причинам Postgres Pro позволяет опустить запятые.
См. также сведения о совместимости в описании SET TRANSACTION.