今天长见识了
今天遇到一个删除索引的问题 按照以前的逻辑我不懂我会去百度下 结果我就百度到了 删除索引的代码
DROP INDEX
结果就是几乎没有看到
DROP KEY
但是 mysql 官方文档写的是
DROP {INDEX | KEY} index_name
我疑惑的是 为什么 大家都很少至少是网上的资料很少看到 DROP KEY 的用法
大家来解惑下 很是困惑
1
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 一起出现的,好像这个猜测不成立,不过上面的这个解释是可以说得通的 |
2
xuyang2 2023-02-24 19:05:23 +08:00
不同数据库产品
甚至不同版本 语法可能都有或大或小的差异 纠结这个干嘛 |
3
Chaconne 2023-02-24 19:07:37 +08:00 via iPhone
我这个门外汉从字面上理解,index 较好
|
4
durban126 OP @bjzhush 主要是我用的是阿里云的产品,他的 DMS 在生成 sql 的时候,用的是 DROP KEY ,让我蒙圈了, 理论上 应该用 index 比较清晰,我也是这么认为,但是大厂的东西,既然使用了 key 的话,可能也是有其原因的吧,搞不懂。
|
6
durban126 OP @xuyang2 主要是头一次见,另外如果 index 比较通俗易懂的话,大厂的产品应该是使用 index 这种语法比较多才对
不过你说的也有道理,可能是版本迭代导致的 |
7
bjzhush 2023-02-24 19:16:31 +08:00
兼容的,不用纠结,也就是当时搞这个程序的人用了下 key 罢了
|
8
xuyang2 2023-02-24 19:20:21 +08:00
对 SQL 方言感兴趣的话
可以瞧瞧 jOOQ - https://github.com/jOOQ/jOOQ/issues/8651 - https://github.com/jOOQ/jOOQ/issues/8649 |