【发布时间】: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 键?
【问题讨论】:
是否可以使用 DROP CONSTRAINT 来消除 UNIQUE 键而不是在 mariaDB 中删除索引?
例如:
ALTER TABLE c_docs DROP CONSTRAINT cid_type;
而不是
ALTER TABLE c_docs DROP INDEX cid_type;
或者我们应该总是使用 DROP INDEX 来删除 UNIQUE 键?
【问题讨论】:
首先,我会说“试试看”而不是问问题。
我怀疑它不起作用,所以这里有一个“完美”的解决方法:
ALTER TABLE c_docs
DROP INDEX cid_type,
ADD INDEX cid_type(cid_type); -- (or whatever column(s) there are)
这将自动执行您想要的操作。
【讨论】:
ALTER 中,我确实展示了这一点。同时,我会猜测文档在建议DROP CONSTRAINT 时正在考虑诸如FOREIGN KEYs 之类的约束。随意抱怨关于删除唯一性约束的文档:bugs.mysql.com。