V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
durban126
V2EX  ›  程序员

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

  •  
  •   durban126 · 2023-02-24 18:15:58 +08:00 · 1607 次点击
    这是一个创建于 636 天前的主题,其中的信息可能已经有所发展或是发生改变。

    今天长见识了

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

    DROP INDEX

    结果就是几乎没有看到

    DROP KEY

    但是 mysql 官方文档写的是

    DROP {INDEX | KEY} index_name

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

    大家来解惑下 很是困惑

    8 条回复    2023-02-24 19:20:21 +08:00
    bjzhush
        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 一起出现的,好像这个猜测不成立,不过上面的这个解释是可以说得通的
    xuyang2
        2
    xuyang2  
       2023-02-24 19:05:23 +08:00
    不同数据库产品
    甚至不同版本
    语法可能都有或大或小的差异
    纠结这个干嘛
    Chaconne
        3
    Chaconne  
       2023-02-24 19:07:37 +08:00 via iPhone
    我这个门外汉从字面上理解,index 较好
    durban126
        4
    durban126  
    OP
       2023-02-24 19:13:00 +08:00
    @bjzhush 主要是我用的是阿里云的产品,他的 DMS 在生成 sql 的时候,用的是 DROP KEY ,让我蒙圈了, 理论上 应该用 index 比较清晰,我也是这么认为,但是大厂的东西,既然使用了 key 的话,可能也是有其原因的吧,搞不懂。
    durban126
        5
    durban126  
    OP
       2023-02-24 19:13:11 +08:00
    @Chaconne 确实
    durban126
        6
    durban126  
    OP
       2023-02-24 19:14:22 +08:00
    @xuyang2 主要是头一次见,另外如果 index 比较通俗易懂的话,大厂的产品应该是使用 index 这种语法比较多才对
    不过你说的也有道理,可能是版本迭代导致的
    bjzhush
        7
    bjzhush  
       2023-02-24 19:16:31 +08:00
    兼容的,不用纠结,也就是当时搞这个程序的人用了下 key 罢了
    xuyang2
        8
    xuyang2  
       2023-02-24 19:20:21 +08:00
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3023 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 13:03 · PVG 21:03 · LAX 05:03 · JFK 08:03
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.