Spec-Zone.ru › MariaDB

ФИКСИРОВАНИЕ

Оператор COMMIT завершает транзакцию, сохраняя любые изменения в данных, чтобы они стали видимыми для последующих транзакций. Кроме того, разблокирует метаданные, изменённые текущей транзакцией. Если автофиксирование установлено в 1, неявное фиксирование выполняется после каждой команды. В противном случае все транзакции, которые не заканчиваются явным оператором COMMIT, неявно отменяются, и изменения теряются. Оператор ROLLBACK может быть использован для этого явно.

Требуемый синтаксис для оператора COMMIT следующий:

COMMIT [WORK] [AND [NO] CHAIN] [[NO] RELEASE]

COMMIT является более важным, а также более интересным завершителем транзакции. Основная форма оператора COMMIT — это просто ключевое слово COMMIT (ключевое слово WORK просто лишнее и может быть опущено без изменения результата).

Необязательная часть AND CHAIN служит для удобства инициирования новой транзакции сразу после завершения старой. Если AND CHAIN указано, то фактически ничего не происходит между старой и новой транзакциями, хотя они остаются отдельными. Характеристики новой транзакции будут такими же, как у старой — то есть, новая транзакция будет иметь тот же режим доступа, уровень изоляции и размер области диагностики (мы обсудим все это вскоре), что и завершённая транзакция.

RELEASE сообщает серверу о немедленном отключении клиента после текущей транзакции.

Существуют NO RELEASE и AND NO CHAIN варианты. По умолчанию фиксирование не RELEASE или CHAIN, но это поведение можно изменить с помощью системной переменной сервера completion_type. В этом случае, AND NO CHAIN и NO RELEASE варианты переопределяют значение по умолчанию сервера.

См. также

  • autocommit - системная переменная сервера, определяющая, производятся ли автоматически фиксирования команд.
  • completion_type - системная переменная сервера, определяющая, являются ли фиксирования стандартными, ФИКСИРОВАНИЕ И ЦЕПОЧКА или ФИКСИРОВАНИЕ ВЫПУСК.
  • SQL-команды, вызывающие неявное фиксирование
Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержание не просматривается заранее компанией MariaDB. Мнения, информация и мнения, выраженные в этом содержании, не обязательно отражают точку зрения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/transactions-commit-statement/

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API