【问题标题】:Does MariaDB support renaming an index?MariaDB 是否支持重命名索引?
【发布时间】:2013-11-05 19:22:39
【问题描述】:

是否有在 MariaDB 中重命名索引的语法?我知道 MySQL 5.7 支持该语法,但 MariaDB 10.0(包括 MySQL 5.6)是否支持它?

【问题讨论】:

  • 你有没有尝试过?您始终可以删除索引并使用其他名称重新创建它。
  • 是的,我知道我可以删除/创建索引。我们有一些复杂的代码在已经进行索引重命名的各个数据库供应商之间共享。希望这可以通过 MariaDB 轻松完成
  • MariaDB 10.5.2(仍未发布)将具有ALTER TABLE ... RENAME INDEX 功能。

标签: sql indexing alter-table mariadb


【解决方案1】:

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

它也没有出现在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

--比尔·卡尔文

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

【讨论】:

  • 在 MariaDB 10.5.9 中运行良好。
【解决方案2】:

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

我会用更多信息更新它。

【讨论】:

    猜你喜欢
    • 2021-08-31
    • 2020-02-17
    • 2019-11-13
    • 1970-01-01
    • 2012-09-26
    • 2013-10-08
    • 1970-01-01
    • 1970-01-01
    • 2023-02-01
    相关资源
    最近更新 更多