Spec-Zone .ru
спецификации, руководства, описания, API

C.5.5.5. Отказ отката для Нетранзакционных Таблиц

Если Вы получаете следующее сообщение, пытаясь выполнить a ROLLBACK, это означает, что один или больше таблиц Вы использовали в транзакции, не поддерживают транзакции:

Warning: Some non-transactional changed tables couldn't be rolled back

На эти нетранзакционные таблицы не влияют ROLLBACK оператор.

Если Вы сознательно не смешивали транзакционные и нетранзакционные таблицы в пределах транзакции, наиболее вероятная причина для этого сообщения состоит в том, что таблица, Вы думали, была транзакционной, фактически не. Это может произойти, если Вы пытаетесь составить таблицу, используя транзакционный механизм хранения, который не поддерживается Вашим mysqld сервером (или это было отключено с опцией запуска). Если mysqld не поддерживает механизм хранения, он вместо этого составляет таблицу как a MyISAM таблица, которая является нетранзакционной.

Можно проверить механизм хранения на таблицу при использовании любого из этих операторов:

SHOW TABLE STATUS LIKE 'tbl_name';SHOW CREATE TABLE tbl_name;

См. Раздел 13.7.5.37,"SHOW TABLE STATUS Синтаксис", и Раздел 13.7.5.12,"SHOW CREATE TABLE Синтаксис".

Чтобы проверить, который поддерживают механизмы хранения Ваш mysqld сервер, используйте этот оператор:

SHOW ENGINES;

См. Раздел 13.7.5.17,"SHOW ENGINES Синтаксис" для полного изложения.