MySQL / MariaDB не выполняет откат транзакции - PullRequest
1 голос
/ 07 июня 2019

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

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

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

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

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

1 Ответ

3 голосов
/ 07 июня 2019

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

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

...