非事务表的回滚失败
如果您在尝试执行时收到以下消息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;
请参见“ SHOW TABLE STATUS语句”和“ SHOW CREATE TABLE语句”。
要检查您的mysqld服务器支持哪些存储引擎,请使用以下语句:
SHOW ENGINES ;
有关完整详细信息,请参见“ SHOW ENGINES语句”。