Обновлена 15 сентября 2026 г. в 08:55
box.begin()
Начало транзакции. Отключает
неявные передачи управления
до окончания транзакции. Указывает, что записи в
журнал упреждающей записи будут отложены до окончания
транзакции. Фактически файбер, который выполняет box.begin(), запускает
«активную мультзапросную транзакцию», блокируя все остальные файберы.
Параметры:
opts(table) — (необязательно) параметры транзакции:txn_isolation— уровень изоляции транзакцийtimeout— время ожидания (в секундах), по истечении которого транзакция откатывается
Возможные ошибки:
- ошибка, если операция недопустима, поскольку уже есть активная транзакция.
- ошибка, если по какой-либо причине не удается выделить память.
- ошибка и откат транзакции при превышении времени ожидания.
Пример
-- Вставка тестовых данных --box.space.bands:insert { 1, 'Roxette', 1986 }box.space.bands:insert { 2, 'Scorpions', 1965 }box.space.bands:insert { 3, 'Ace of Base', 1987 }-- Явное начало и фиксация транзакции --box.begin()box.space.bands:insert { 4, 'The Beatles', 1960 }box.space.bands:replace { 1, 'Pink Floyd', 1965 }box.commit()-- Начало транзакции с указанным уровнем изоляции --box.begin({ txn_isolation = 'read-committed' })box.space.bands:insert { 5, 'The Rolling Stones', 1962 }box.space.bands:replace { 1, 'The Doors', 1965 }box.commit()