MySQL删除一些外键 [英] MySQL Removing Some Foreign keys

查看:215
本文介绍了MySQL删除一些外键的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个表的主键在几个其他表中使用,并有几个外键对其他表。

I have a table whose primary key is used in several other tables and has several foreign keys to other tables.

CREATE TABLE location (
   locationID INT NOT NULL AUTO_INCREMENT PRIMARY KEY
   ...
) ENGINE = InnoDB;

CREATE TABLE assignment (
   assignmentID INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
   locationID INT NOT NULL,
   FOREIGN KEY locationIDX (locationID) REFERENCES location (locationID)
   ...
) ENGINE = InnoDB;

CREATE TABLE assignmentStuff (
   ...
   assignmentID INT NOT NULL,
   FOREIGN KEY assignmentIDX (assignmentID) REFERENCES assignment (assignmentID)
) ENGINE = InnoDB;



<它给我一个错误1025(HY000):错误重命名错误。

The problem is that when I'm trying to drop one of the foreign key columns (ie locationIDX) it gives me an "ERROR 1025 (HY000): Error on rename" error.

如何删除上面的分配表中的列,而不会收到此错误?

How can I drop the column in the assignment table above without getting this error?

推荐答案

这里所述,似乎外键约束有要通过约束名称删除,而不是索引名称。语法是:

As explained here, seems the foreign key constraint has to be dropped by constraint name and not the index name. The syntax is:

alter table footable drop foreign key fooconstraint

希望这有帮助。

这篇关于MySQL删除一些外键的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆