MySQL 8.3 Release Notes
如果您在尝试执行 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;
请参阅 第 15.7.7.40 节,“SHOW TABLE STATUS 语句” 和 第 15.7.7.11 节,“SHOW CREATE TABLE 语句”。
要检查您的 mysqld 服务器支持的存储引擎,请使用以下语句:
SHOW ENGINES;
请参阅 第 15.7.7.17 节,“SHOW ENGINES 语句” 以获取完整的详细信息。