Я использую версию MariaDB 10.3.13
. В последний раз, когда я проверял, установлен флаг autocommit
.
MariaDB> SHOW VARIABLES WHERE Variable_name='autocommit';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| autocommit | ON |
+---------------+-------+
Как я читал в документе, когда автокоммит включен, вы не можете откатить транзакцию, как указано здесь
По умолчанию MySQL работает с включенным режимом автоматической фиксации. Это означает, что
как только вы выполните инструкцию, которая обновляет (модифицирует) таблицу,
MySQL сохраняет обновление на диске, чтобы сделать его постоянным. Изменение
откат невозможен.
Поэтому я пишу небольшой скрипт для тестирования. Сначала я запускаю транзакцию и обновляю некоторые данные:
BEGIN;
UPDATE foo SET year = 2019 WHERE id = 1;
Query OK, 1 row affected (0.000 sec)
Rows matched: 1 Changed: 1 Warnings: 0
Так что похоже, что я сделал. Тогда я откат:
ROLLBACK;
Query OK, 0 rows affected (0.005 sec)
Затем я проверяю снова обновленную запись, я вижу, что данные не меняются. Это странно, потому что я думаю, что данные всегда будут меняться, несмотря ни на что, потому что флаг autocommit
включен.
Пожалуйста, объясните мне, почему.
Спасибо