【问题标题】:Using DROP CONSTRAINT to remove a UNIQUE key instead of drop index in mariaDB在 mariaDB 中使用 DROP CONSTRAINT 删除唯一键而不是删除索引
【发布时间】:2019-01-12 13:29:39
【问题描述】:

是否可以使用 DROP CONSTRAINT 来消除 UNIQUE 键而不是在 mariaDB 中删除索引?
例如:
ALTER TABLE c_docs DROP CONSTRAINT cid_type;
而不是
ALTER TABLE c_docs DROP INDEX cid_type;
或者我们应该总是使用 DROP INDEX 来删除 UNIQUE 键?

【问题讨论】:

    标签: mariadb unique-constraint


    【解决方案1】:

    首先,我会说“试试看”而不是问问题。

    我怀疑它不起作用,所以这里有一个“完美”的解决方法:

    ALTER TABLE c_docs
        DROP INDEX cid_type,
        ADD  INDEX cid_type(cid_type);  -- (or whatever column(s) there are)
    

    这将自动执行您想要的操作。

    【讨论】:

    • 正如我所提到的,我知道 DROP INDEX 的做法,这不是我的问题。关于使用 DROP CONSTRAINT 我确实尝试过(你为什么认为我没有尝试过)但它没有用。但是正如文档中所表达的那样,可以使用 DROP CONSTRAINT 来删除约束,我想可能有一种使用约束的正确方法。
    • 我可以回复你吗?你没有说你试过了。你没有表明你会将这两个步骤放在一个 ALTER 中,我确实展示了这一点。同时,我会猜测文档在建议DROP CONSTRAINT 时正在考虑诸如FOREIGN KEYs 之类的约束。随意抱怨关于删除唯一性约束的文档:bugs.mysql.com。
    猜你喜欢
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-29
    • 2016-07-06
    • 2020-10-01
    • 1970-01-01
    • 2019-01-13
    相关资源
    最近更新 更多