mysql语句重命名索引_如何重命名MySQL中的索引

我在2009年回答了这个问题。当时MySQL没有语法重命名索引。

从那时起,MySQL 5.7引入了一个ALTER TABLE RENAME INDEX语法。

RENAME INDEX old_index_name TO new_index_name renames an index. This is a MySQL extension to standard SQL. The content of the table remains unchanged. old_index_name must be the name of an existing index in the table that is not dropped by the same ALTER TABLE statement. new_index_name is the new index name, which cannot duplicate the name of an index in the resulting table after changes have been applied. Neither index name can be PRIMARY.

早期版本的MySQL,例如。 5.6及更早版本,在ALTER TABLE中不支持重命名索引(或键,它是同义词)的语法。

唯一的解决方案是ALTER TABLE DROP KEY oldkeyname,ADD KEY newkeyname(…)。

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

关于你的更新:也许文档不够精确。无论如何,没有SQL语法来重命名索引。

索引是可以从数据重建的数据结构(实际上,建议使用OPTIMIZE TABLE定期重建索引)。这需要一些时间,但它是一个常见的操作。索引数据结构与表数据是分开的,所以添加或删除索引不需要触及表数据,如文档所述。

关于.frm文件,MySQL不支持编辑.frm文件。我不会为任何原因。您100%保证损坏您的表,使其不可用。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值