Получение ошибки/предупреждения: Warning: Some non-transactional changed tables couldn't be rolled back
при попытке сделать ROLLBACK
означает,
что для некоторых использованных в транзакции таблиц не поддерживаются
транзакции. Команда ROLLBACK
на эти нетранзакционные таблицы не
подействует.
Наиболее типичный случай возникновения такой ошибки связан с попыткой
создать таблицу, тип которой не поддерживается бинарником mysqld
. Если
mysqld
не поддерживает тип таблиц (или тип таблиц отключен опцией при
запуске), то сервер создаст таблицу с типом, наиболее близким к
запрошенному (скорее всего, MyISAM
).
Чтобы проверить тип таблицы, следует выполнить:
SHOW TABLE STATUS LIKE 'table_name'
. See Раздел 4.5.6.2, «SHOW TABLE STATUS
».
Можно проверить, какие расширения поддерживает исполняемый файл mysqld
,
выполнив:
show variables like 'have_%'
. See Раздел 4.5.6.4, «SHOW VARIABLES
».