如何重命名MySQL中的所有索引

时间:2013-07-05 05:37:50

标签: mysql

我有一个MySQL数据库,其中索引的名称在表之间共享。这在MySQL中很好,因为索引名称只需要在表中是唯一的,而不是在数据库中。但我必须将此数据库导出到需要索引名称全局唯一的系统。

我是否可以运行一些命令或脚本来为索引分配唯一的名称?我不在乎它们是否是随机生成的。

4 个答案:

答案 0 :(得分:2)

从最新版本的MySQL开始,无法重命名索引。您唯一的选择是DROP索引,然后CREATE新索引或CREATE新索引。

答案 1 :(得分:1)

MySQL上没有RENAMEALTER索引命令。 您需要DROP索引或CREATE新索引。

答案 2 :(得分:0)

MySQL不支持ALTER TABLE中的语法来重命名索引(或键,这是一个同义词)。

您可以ALTER TABLE DROP KEYALTER TABLE ADD KEY

ALTER INDEX中没有MySQL命令。您只能使用新名称DROP INDEX然后CREATE INDEX

答案 3 :(得分:0)

我认为值得强调@zerkms在上面的评论中提到的内容 - 你可以重命名索引(自MySQL 5.7起):

alter table mytable RENAME INDEX old_index_name TO new_index_name