簡體   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