V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
durban126
V2EX  ›  程序员

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

  •  
  •   durban126 · Feb 24, 2023 · 2346 views
    This topic created in 1171 days ago, the information mentioned may be changed or developed.

    今天长见识了

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

    DROP INDEX

    结果就是几乎没有看到

    DROP KEY

    但是 mysql 官方文档写的是

    DROP {INDEX | KEY} index_name

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

    大家来解惑下 很是困惑

    8 replies    2023-02-24 19:20:21 +08:00
    bjzhush
        1
    bjzhush  
       Feb 24, 2023
    两者都是保留字,在很多时候看起来比较通用,但是 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  
       Feb 24, 2023
    不同数据库产品
    甚至不同版本
    语法可能都有或大或小的差异
    纠结这个干嘛
    Chaconne
        3
    Chaconne  
       Feb 24, 2023 via iPhone
    我这个门外汉从字面上理解,index 较好
    durban126
        4
    durban126  
    OP
       Feb 24, 2023
    @bjzhush 主要是我用的是阿里云的产品,他的 DMS 在生成 sql 的时候,用的是 DROP KEY ,让我蒙圈了, 理论上 应该用 index 比较清晰,我也是这么认为,但是大厂的东西,既然使用了 key 的话,可能也是有其原因的吧,搞不懂。
    durban126
        5
    durban126  
    OP
       Feb 24, 2023
    @Chaconne 确实
    durban126
        6
    durban126  
    OP
       Feb 24, 2023
    @xuyang2 主要是头一次见,另外如果 index 比较通俗易懂的话,大厂的产品应该是使用 index 这种语法比较多才对
    不过你说的也有道理,可能是版本迭代导致的
    bjzhush
        7
    bjzhush  
       Feb 24, 2023
    兼容的,不用纠结,也就是当时搞这个程序的人用了下 key 罢了
    xuyang2
        8
    xuyang2  
       Feb 24, 2023
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3999 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 44ms · UTC 04:21 · PVG 12:21 · LAX 21:21 · JFK 00:21
    ♥ Do have faith in what you're doing.