# B.3.4.5 非事务性表的回滚失败

如果您在尝试执行某项操作时收到以下消息回滚,则表示您在事务中使用的一个或多个表不支持事务:

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

这些非事务性表不受回滚陈述。

如果您没有故意在事务中混合事务性和非事务性表,则此消息的最可能原因是您认为是事务性的表实际上不是。如果您尝试使用您不支持的事务存储引擎创建表,则可能会发生这种情况mysqld服务器(或使用启动选项禁用)。如果mysqld不支持存储引擎,而是将表创建为MyISAM表,这是非事务性的。

您可以使用以下任一语句检查表的存储引擎:

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

第 13.7.7.38 节,“SHOW TABLE STATUS 语句”, 和第 13.7.7.10 节,“SHOW CREATE TABLE 语句”.

检查您的存储引擎mysqld服务器支持,使用这个语句:

SHOW ENGINES;

第 13.7.7.16 节,“SHOW ENGINES 语句”完整的细节。