删除外键不起作用

DROP FOREIGN KEY not working

在 PHPMyAdmin 上,我想 DROP 一个 FOREIGN KEY

ALTER TABLE information DROP FOREIGN KEY IDX_29791883B30676A7

因为当我执行下一个查询时它不起作用:

ALTER TABLE information DROP INDEX IDX_29791883B30676A7

Cannot drop index 'IDX_29791883B30676A7': needed in a foreign key constraint

然而,第二个查询的错误是索引被用作外键。 很好,但是当我执行第一个查询时出现此错误:

Can't DROP 'IDX_29791883B30676A7'; check that column/key exists

所以问题是:

创建外键后,您可能会发现希望从 table 中删除外键。您可以使用 SQL Server

中的 ALTER TABLE 语句执行此操作

试试这个

SET FOREIGN_KEY_CHECKS=0;
ALTER TABLE information DROP FOREIGN KEY IDX_29791883B30676A7;
ALTER TABLE information DROP INDEX IDX_29791883B30676A7;
SET FOREIGN_KEY_CHECKS=1;

默认情况下,外键的前缀是 'FK' 而不是 'IDX'。您正在尝试删除索引而不是外键。您提到外键是:FK_29791883B30676A7 所以删除它的正确方法是:

ALTER TABLE information DROP FOREIGN KEY FK_29791883B30676A7

我在外键方面也有同样的问题,我找到了消除约束的解决方案。先来看看:

SHOW CREATE TABLE information;

您将找到规则的名称,然后将其删除:

ALTER TABLE information DROP CONSTRAINT `name_of_rule`;