我有一个 MySQL 数据库,其中索引的名称在表之间共享。这在 MySQL 中很好,因为索引名称只需要在表中是唯一的,而不是在数据库中。但我必须将此数据库导出到要求索引名称全局唯一的系统。
我可以运行一些命令或脚本来为索引分配唯一名称吗?我不在乎它们是否是随机生成的。
我有一个 MySQL 数据库,其中索引的名称在表之间共享。这在 MySQL 中很好,因为索引名称只需要在表中是唯一的,而不是在数据库中。但我必须将此数据库导出到要求索引名称全局唯一的系统。
我可以运行一些命令或脚本来为索引分配唯一名称吗?我不在乎它们是否是随机生成的。
在 MySQL 的最新版本中,没有办法重命名索引。您唯一的选择是DROP
索引,然后CREATE
是一个新的或只是CREATE
一个新的。
MySQL 上没有RENAME
or ALTER
index 命令。您需要DROP
索引或CREATE
新索引。
我认为值得强调@zerkms 在上面的评论中提到的内容-您可以重命名索引(从MySQL 5.7开始):
alter table mytable RENAME INDEX old_index_name TO new_index_name
MySQL 不支持ALTER TABLE
重命名索引(或键,这是同义词)的语法。
你可以ALTER TABLE DROP KEY
和ALTER TABLE ADD KEY
。
中没有ALTER INDEX
命令MySQL
。你只能DROP INDEX
再用CREATE INDEX
新的名字。