我有一个MySQL数据库,其中索引的名称在表之间共享。这在MySQL中很好,因为索引名称只需要在表中是唯一的,而不是在数据库中。但我必须将此数据库导出到需要索引名称全局唯一的系统。
我是否可以运行一些命令或脚本来为索引分配唯一的名称?我不在乎它们是否是随机生成的。
答案 0 :(得分:2)
从最新版本的MySQL开始,无法重命名索引。您唯一的选择是DROP
索引,然后CREATE
新索引或CREATE
新索引。
答案 1 :(得分:1)
MySQL上没有RENAME
或ALTER
索引命令。
您需要DROP
索引或CREATE
新索引。
答案 2 :(得分:0)
MySQL不支持ALTER TABLE
中的语法来重命名索引(或键,这是一个同义词)。
您可以ALTER TABLE DROP KEY
和ALTER 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