MySQL 8.0 参考手册 / 第 2 章安装和升级 MySQL / 2.9 从源码安装MySQL / 2.9.8 处理编译MySQL的问题 / B.3.4 查询相关问题 /
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 语句”。