[英]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.