mysql> delete from faculty where fid in ( select fid from class);
错误1451(23000):无法删除或更新父行:异类 键约束失败(
ass1
。class
,CONSTRAINTclass_ibfk_1
外键(fid
)参考faculty
(fid
))
这引发了上述错误。我该怎么办?
答案 0 :(得分:1)
在不知道后果的情况下强制执行此操作是危险的。
发生此错误是因为有另一个表与您尝试删除的内容有外键关联。您希望在依赖已删除数据的其他表中的那些行中发生什么?以下是一些选项:
答案 1 :(得分:0)
您正试图从父表中删除。这可能是您收到错误的原因。
答案 2 :(得分:0)
将FK设置为级联删除:
YourForeignIDField INT NOT NULL REFERENCES ParentTable.ID ON UPDATE CASCADE ON DELETE CASCADE
或者设置外来ID以接受Null并级联为null:
YourForeignIDField INT NULL REFERENCES ParentTable.ID ON UPDATE CASCADE ON DELETE SET NULL
或先删除所有孩子:
DELETE FROM ChildTable WHERE ForeignID = YourForgeignID;
DELETE FROM ParentTable WHERE ID = YourID;