本文介绍了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删除一些外键
发布评论