Bezdepbonusu7Программирование: статьи и ответы

Вопрос

MySQL/MariaDB не откатывает транзакцию

Автор вопроса: LehksОтветов: 1

Я пытаюсь совершить транзакцию, а затем откатиться.

Мой код следующий:

SET autocommit = OFF;
START TRANSACTION;
DROP TABLE IF EXISTS Test;
CREATE TABLE Test (test INT);
ROLLBACK;

Однако даже если я вызову ROLLBACK, таблица Test все равно будет создана.

Таблицы используют InnoDB. Я использую версию MariaDB 10.3.15.

  • Существует ли таблица до выполнения транзакции? Strawberry 07.06.2019
  • Нет. Lehks 07.06.2019

mariadbcreate-tablerollback

Ответы

Ответ 1 · рейтинг 3 · Bill Karwin

https://dev.mysql.com/doc/refman/8.0/en/implicit-commit.html

... Оператор CREATE TABLE в InnoDB обрабатывается как одна транзакция. Это означает, что ROLLBACK от пользователя не отменяет инструкции CREATE TABLE, сделанные пользователем во время этой транзакции.

Перевод вопроса и ответов сообщества Stack Overflow, лицензия CC BY-SA. Оригинал на Stack Overflow.

Похожие материалы