删除外键不起作用
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`;
在 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`;