繁体   English   中英

在使用 ENGINE=MyISAM 的 AWS RDS 中创建 mysql 表时,它会使用 InnoDB 覆盖它

[英]When creating a mysql table in AWS RDS with ENGINE=MyISAM, it overrides it with InnoDB

我正在使用 AWS Aurora MySQL 实例的“5.7.mysql_aurora.2.10.2”版本,我试图用 innoDB 引擎创建日志表,这样我就可以结合 SIGNAL 命令记录事物(INSERT 查询)。 像这样的东西:

INSERT INTO Log(type, info, date) VALUES("ERROR", "Error happened...!", CURRENT_TIMESTAMP());
SIGNAL CUSTOM_EXCEPTION SET MESSAGE_TEXT = "Error happened...";

但正如我发现的那样,SIGNAL 基本上回滚了所有内容,包括我的 INSERT 语句。 我一直在试图找出解决方法,我偶然发现了带有引擎 MyISAM 的数据库表,它应该可以解决我的问题。 所以我决定创建一个表进行测试:

CREATE TABLE t (i INT) ENGINE = MYISAM;

出于某种原因,引擎一直是 InnoDB。 我已经在我的本地实例上进行了测试,它工作正常,但是一旦我在我的 RDS 数据库上尝试它,它就会不断变回来。 我曾尝试使用 ALTER TABLE 但它不起作用。

RDS 是否有一些配置不允许我使用除 InnoDB 之外的任何其他引擎?

Amazon Aurora 仅支持 InnoDB。

https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Reference.html说:

Aurora MySQL 集群使用 InnoDB 存储引擎存储您的所有数据。

这是设计使然。 他们通过修改 InnoDB 存储引擎来实现他们的分布式存储。 Aurora 根本无法与任何其他存储引擎一起使用,因此他们禁用了为表指定存储引擎的功能。

极光不是 MySQL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM