Начать транзакцию и выполнить автоматический откат в случае сбоя? [Дубликат]

0

Я хочу знать, будет ли следующий оператор sql автоматически откатываться до состояния перед началом транзакции, если в любом из вставке/обновлении возникнет ошибка. Или мне нужно вручную выполнить откат до начального состояния до начала транзакции? Если мне нужно вручную выполнить откат, как мне это сделать?

START TRANSACTION;
INSERT INTO TABLE 1 ...
UPDATE TABLE 1 ...
UPDATE TABLE 2 ...
INSERT TABLE 3 ...
COMMIT;
Теги:

1 ответ

0

Вы можете откатить транзакцию MySQL с помощью ROLLBACK; , Автоматический откат зависит от клиента, который вы используете. Если вы используете, клиент командной строки MySql, он запускает выход, когда возникает ошибка, которая откатывает любые ожидающие транзакции. Тем не менее, некоторые клиенты не могут автоматически запускать откат при возврате ошибки, оставляя вас обрабатывать ошибку, как вы сочтете нужным. Вы можете увидеть больше информации о том, как работают транзакции, включая их различные варианты и нюансы в официальной документации.

Изменение: Обновлен ответ об автоматическом откате, используя информацию из ответа в этом другом вопросе.

  • 0
    Неправильно, транзакции автоматически откатываются, если происходит необнаруженная ошибка.
  • 0
    Исправлен и предоставлен источник обновленной информации.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню