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?
2 回答
我刚刚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
——比尔·卡尔文
但是比尔卡尔文对这个问题的编辑仍然存在。嗯,他为什么要删除它?
他们在 10.5.2 版本上添加了该选项,但我不确定它是否有效,因为我的服务器中有 vs 10.3。 https://mariadb.com/kb/en/alter-table/#rename-indexkey
我会用更多信息更新它。