我有两张桌子,父母和孩子。 Parent.favorite_child列具有指向Child.id的外键约束。 Child.parent列有一个指向Parent.id的外键约束。
现在这是奇怪的部分。我正在尝试删除我的Child表,不包含任何记录,但是MySQL给了我错误:
ERROR 1217: Cannot delete or update a parent row: a foreign key constraint fails
SQL Statement:
drop table `mydatabase`.`Child`
为什么MySQL会抛出此错误? Child表中几乎没有任何记录可以指向或来自哪些记录。
答案 0 :(得分:3)
您需要首先删除父表上的外键,然后才能删除子表:
ALTER TABLE `Parent` DROP FOREIGN KEY `Parent_ibfk_1` ;
答案 1 :(得分:0)
我首先尝试删除外键约束
您可能还想尝试命令“show engine innodb status” - 它可能表示表中有数据时是否存在遗留问题。
答案 2 :(得分:0)
尝试从表中删除外键约束。
尝试执行此操作,如图所示 u could see that there are foreign key constraints in yellow shading
只需右键单击该键部分,然后删除外键即可。 inside red section the image,然后单击“确定”以删除外键,就是这样,您现在可以使用简单的方法删除该列
AlTER table table_name drop column column_name;
谢谢。