簡體   English   中英

將表引擎更改為InnoDB時出錯

[英]error while changing table engine to InnoDB

我將表引擎從MyISAM更改為InnoDB:

use db;
alter table table engine=innodb;

但是,我遇到了一個非常奇怪的問題。

我可以更改所有表的引擎,但某些表的名稱以_1結尾的除外。

例如,我可以更改表test_2test_xy ,但不能更改表test_1 當我嘗試執行此操作時,會發生以下錯誤:

ERROR 1005 (HY000): Can't create table 'db.#sql-3d9_348' (errno: 139)

以上不只是一個。 我有learning_1learning_2learning_xy以及如此多的配對。

我不知道為什么會這樣。 因為_1不是特殊的字符串,例如反引號,引號,美元符號,數字符號等。 而且我認為這與db的長度,表名無關。 另外,與表格大小無關。

使用特定的表名更改表引擎時是否存在已知的錯誤或問題?

我不知道為什么_1是一個問題,但是也許這是一種解決方法

use db;
RENAME TABLE test_1 TO test1;
alter table test1 engine=innodb;
RENAME TABLE test1 TO test_1;

當然我會建議在做任何事情之前先備份

我的錯。

它與_1不相關,但與列數相關。

名稱末尾帶有_1表具有1,001列。

對於InnoDB來說太大了

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM