我试图运行这些查询来执行ROLLBACK,而且我不太确定我做错了什么,但我收到了警告:
某些非交易更改的表格无法回滚。
经过一番研究后,我发现这个消息最可能的原因是假设一个表是事务性的,但事实上并非如此。如何确定哪些表是事务性的?
我必须假设我使用的数据库使用回滚,因为它是我为需要我们使用数据库的类赋予的赋值。
答案 0 :(得分:3)
使用InnoDB存储引擎的表或使用NDB集群存储引擎的表支持事务;其他发动机没有。 (文档中有一个比较表,但我现在找不到它。)
要检查特定的表格,请使用
SHOW CREATE TABLE <tablename>;
将显示完整的CREATE TABLE
语句,包括ENGINE
子句。
要检查数据库中安装了哪些引擎,请使用
SHOW ENGINES;
如果您安装了InnoDB但它不是默认引擎,您可以在ENGINE=InnoDB
语句中指定CREATE TABLE
或稍后使用
ALTER TABLE <tablename> ENGINE = InnoDB;