0

我正在尝试运行这些查询来执行 ROLLBACK,但我不太确定我做错了什么,但我收到了警告:

一些非事务性更改的表无法回滚。

经过一番研究,我发现此消息的最可能原因是错误假设表是事务性的,但实际上不是。如何确定哪些表是事务性的?

我必须假设我正在使用的数据库使用回滚,因为它在我为要求我们使用数据库的类分配的作业中。

4

1 回答 1

3

使用 InnoDB 存储引擎的表,或者使用 NDB 集群存储引擎的表,支持事务;其他引擎没有。(文档中某处有一个比较表,但我现在找不到。)

要检查特定表,请使用

SHOW CREATE TABLE <tablename>;

这将向您显示完整的CREATE TABLE语句,包括该ENGINE子句。

要检查数据库中安装了哪些引擎,请使用

SHOW ENGINES;

如果您安装了 InnoDB 但它不是默认引擎,您可以ENGINE=InnoDBCREATE TABLE语句中指定或稍后更改它

ALTER TABLE <tablename> ENGINE = InnoDB;
于 2016-04-06T00:42:01.513 回答