B.4.4.5 非事务 table 的回滚失败

如果在尝试执行ROLLBACK时收到以下消息,则意味着您在事务中使用的一个或多个 table 不支持事务:

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

这些非事务 table 不受ROLLBACK语句的影响。

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

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

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 语句”

首页