删除索引的语法 是 DROP KEY 还是 DROP INDEX

2023-02-24 18:15:58 +08:00
 durban126

今天长见识了

今天遇到一个删除索引的问题 按照以前的逻辑我不懂我会去百度下 结果我就百度到了 删除索引的代码

DROP INDEX

结果就是几乎没有看到

DROP KEY

但是 mysql 官方文档写的是

DROP {INDEX | KEY} index_name

我疑惑的是 为什么 大家都很少至少是网上的资料很少看到 DROP KEY 的用法

大家来解惑下 很是困惑

1608 次点击
所在节点    程序员
8 条回复
bjzhush
2023-02-24 18:49:56 +08:00
两者都是保留字,在很多时候看起来比较通用,但是 key 只是索引这个结构的一个组成部分。
老外对于单词比我们要敏感的多,从字义上来说 index 要比 key 准确和清晰的多,因为建立和删除的就是索引,所以用 index 这个东西比较多不算奇怪。
我看到这个问题的第一反应,猜测 key 可能是为了兼容早期语法保留的关键字,不过我找了 MySQL 最早版本 5.1 的文档, https://docs.oracle.com/cd/E19078-01/mysql/mysql-refman-5.1/sql-syntax.html#create-index ,最开始也是 index 和 key 一起出现的,好像这个猜测不成立,不过上面的这个解释是可以说得通的
xuyang2
2023-02-24 19:05:23 +08:00
不同数据库产品
甚至不同版本
语法可能都有或大或小的差异
纠结这个干嘛
Chaconne
2023-02-24 19:07:37 +08:00
我这个门外汉从字面上理解,index 较好
durban126
2023-02-24 19:13:00 +08:00
@bjzhush 主要是我用的是阿里云的产品,他的 DMS 在生成 sql 的时候,用的是 DROP KEY ,让我蒙圈了, 理论上 应该用 index 比较清晰,我也是这么认为,但是大厂的东西,既然使用了 key 的话,可能也是有其原因的吧,搞不懂。
durban126
2023-02-24 19:13:11 +08:00
@Chaconne 确实
durban126
2023-02-24 19:14:22 +08:00
@xuyang2 主要是头一次见,另外如果 index 比较通俗易懂的话,大厂的产品应该是使用 index 这种语法比较多才对
不过你说的也有道理,可能是版本迭代导致的
bjzhush
2023-02-24 19:16:31 +08:00
兼容的,不用纠结,也就是当时搞这个程序的人用了下 key 罢了
xuyang2
2023-02-24 19:20:21 +08:00

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/918959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX