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