B.3.4.5 Отказ от отката для нетранзакционных таблиц
Если при попытке выполнить ROLLBACK, вы получите следующее сообщение, это означает, что одна или несколько таблиц, используемых в транзакции, не поддерживают транзакции:
Warning: Some non-transactional changed tables couldn't be rolled back
Эти нетранзакционные таблицы не затрагиваются оператором ROLLBACK.
Если вы не намеренно смешивали транзакционные и нетранзакционные таблицы в рамках транзакции, наиболее вероятная причина этого сообщения заключается в том, что таблица, которую вы считали транзакционной, на самом деле таковой не является. Это может произойти, если вы пытаетесь создать таблицу с помощью транзакционного движка хранения, который не поддерживается вашим сервером mysqld (или который был отключен с помощью опции запуска). Если сервер mysqld не поддерживает движок хранения, он создаёт таблицу как MyISAM таблицу, которая не транзакционная.
Вы можете проверить движок хранения для таблицы, используя любой из этих запросов:
SHOW TABLE STATUS LIKE 'tbl_name';
SHOW CREATE TABLE tbl_name;
См. Раздел 13.7.5.36, «Операция SHOW TABLE STATUS» и Раздел 13.7.5.10, «Операция SHOW CREATE TABLE».
Чтобы проверить, какие движки хранения поддерживает ваш сервер mysqld, используйте этот запрос:
SHOW ENGINES;
См. Раздел 13.7.5.16, «Операция SHOW ENGINES» для получения подробной информации.
© 2025 Oracle
Licensed under the GPLv2 License.