MySQL 8.4 Release Notes
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;
请参阅第15.7.7.37节,“SHOW TABLE STATUS Statement”和第15.7.7.11节,“SHOW CREATE TABLE Statement”。
要检查您的mysqld服务器支持哪些存储引擎,请使用以下语句:
SHOW ENGINES;
请参阅第15.7.7.17节,“SHOW ENGINES Statement”以获取详细信息。