«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Когда транзакция не откатывается автоматически в SQL?

Когда транзакция не откатывается автоматически в SQL?

Опубликовано 7 ноября 2024 г.
Просматривать:302

When is a Transaction Not Automatically Rolled Back in SQL?

Автоматический откат транзакции

Вопрос вращается вокруг поведения транзакций, когда ошибка возникает в блоке операторов SQL, заключенном в START TRANSACTION и СОВЕРШИТЬ ТРАНЗАКЦИЮ. ОП замечает, что при обнаружении синтаксической ошибки перед оператором COMMIT TRANSACTION транзакция автоматически откатывается.

Механизм отката транзакции

Нет, транзакции не откатываются вернуться немедленно при обнаружении ошибки. Однако некоторые клиентские приложения могут применять особые политики обработки ошибок.

Например, в клиенте командной строки mysql:

  • Обычно ошибка во время выполнения останавливает процесс выполнения и приводит к выходу из клиента.
  • Выход во время выполнения транзакции автоматически приводит к откату транзакции.

Настройка политики отката

При создании собственных приложений вы можете контролировать политику отката транзакций. Однако обратите внимание, что существуют исключения, в которых применяется откат:

  1. Отключение клиента: Выход из базы данных или отключение от нее всегда инициирует откат транзакции.
  2. Тайм-аут взаимоблокировки/ожидания блокировки: при возникновении тайм-аута взаимоблокировки или ожидания блокировки происходит неявный откат.

Для всех остальных сценариев, если во время транзакции возникает ошибка , возвращается ошибка, и у разработчика есть выбор: зафиксировать или отменить транзакцию.

Заявление о выпуске Эта статья перепечатана по адресу: 1729746768. В случае каких-либо нарушений, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3