5

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

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

4

4 回答 4

2

在 MySQL 的最新版本中,没有办法重命名索引。您唯一的选择是DROP索引,然后CREATE是一个新的或只是CREATE一个新的。

于 2013-07-05T05:57:37.610 回答
1

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

于 2013-07-05T05:42:07.093 回答
1

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

alter table mytable RENAME INDEX old_index_name TO new_index_name
于 2017-09-22T11:32:20.873 回答
0

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

你可以ALTER TABLE DROP KEYALTER TABLE ADD KEY

中没有ALTER INDEX命令MySQL。你只能DROP INDEX再用CREATE INDEX新的名字。

于 2013-07-05T07:33:37.957 回答