12

Is there a syntax for renaming an index in MariaDB? I understand that MySQL 5.7 supports the syntax, but does MariaDB 10.0 (which includes MySQL 5.6) support it?

4

2 回答 2

7

我刚刚ALTER TABLE thing RENAME INDEX ix_old TO ix_new;在 MariaDB 10.2.12 中尝试过,但失败了。

它也没有出现在https://mariadb.com/kb/en/library/alter-table/的文档中

神奇的是,duckduckgo 中显示的这个问题的答案不存在!它说

不,在 MySQL(最高 5.6)或 MariaDB(最高 10)或 Percona Server(最高 5.6)的当前版本中无法重命名索引。

您只能删除一个索引并创建一个不同名称的新索引。

作为一种解决方法,您可以使用 pt-online-schema-change 添加具有新名称的新索引并按旧名称删除旧索引,同时允许对原始表进行连续读/写访问。

$ pt-online-schema-change --alter "ADD KEY new_idx_name, DROP KEY old_idx_name" \ D=mydatabase,t=mytable

——比尔·卡尔文

但是比尔卡尔文对这个问题的编辑仍然存在。嗯,他为什么要删除它?

于 2019-01-31T11:43:54.433 回答
0

他们在 10.5.2 版本上添加了该选项,但我不确定它是否有效,因为我的服务器中有 vs 10.3。 https://mariadb.com/kb/en/alter-table/#rename-indexkey

我会用更多信息更新它。

于 2020-09-28T12:11:19.527 回答