DROP FOREIGN KEY无法正常工作

时间:2016-05-24 07:56:11

标签: mysql phpmyadmin

在PHPMyAdmin上,我想 DROP FOREIGN KEY with

ALTER TABLE information DROP FOREIGN KEY IDX_29791883B30676A7

因为当我进行下一个查询时,它无效:

ALTER TABLE information DROP INDEX IDX_29791883B30676A7
  

无法删除索引'IDX_29791883B30676A7':外键约束中需要

但是,第二个查询作为索引用作外国人密钥的错误。 很好,但是当我做第一个查询时,我收到了这个错误:

  

不能DROP'IDX_29791883B30676A7';检查列/密钥是否存在

所以问题是:

  • 我如何实际检查
  • 我怎样才能放弃该密钥

4 个答案:

答案 0 :(得分:1)

创建外键后,您可能会发现希望从表中删除外键。您可以使用SQL Server中的ALTER TABLE语句

执行此操作

答案 1 :(得分:1)

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

ALTER TABLE information DROP FOREIGN KEY FK_29791883B30676A7

答案 2 :(得分:0)

试试这个

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;

答案 3 :(得分:0)

我对外键有同样的问题,我找到了消除约束的解决方案。首先看一下:

SHOW CREATE TABLE information;

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

ALTER TABLE information DROP CONSTRAINT `name_of_rule`;