栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何在MySQL中重命名索引

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何在MySQL中重命名索引

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

从那时起,MySQL 5.7引入了一种

ALTER TABLE RENAME INDEX
语法。

http://dev.mysql.com/doc/refman/5.7/en/alter-
table.html
部分说:

  • RENAME INDEX old_index_name TOnew_index_name
    重命名索引。这是标准SQL的MySQL扩展。该表的内容保持不变。
    old_index_name
    必须是同一
    ALTERTABLE
    语句未删除的表中现有索引的名称。
    new_index_name
    是新的索引名称,在应用更改后,该名称不能与结果表中的索引名称重复。两个索引名称都不能为
    PRIMARY


MySQL的早期版本(例如5.6和更早版本)不支持使用语法

ALTERTABLE
重命名索引(或键,这是同义词)。

唯一的解决方案是

ALTER TABLE DROP KEY oldkeyname, ADD KEY newkeyname (...)

ALTER INDEX
MySQL中没有命令。您只能
DROPINDEX
CREATEINDEX
使用新名称。


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

索引是可以从数据中重建的数据结构(实际上,建议使用定期重建索引

OPTIMIZETABLE
)。这需要一些时间,但这是司空见惯的操作。索引数据结构与表数据是分开的,因此,如文档所述,添加或删除索引不需要接触表数据。

关于

.frm
文件,MySQL不支持编辑
.frm
文件。出于任何原因我都不会这样做。您100%保证会损坏您的表并使它无法使用。




转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/415290.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号