问题
做牛腩新闻发布系统,当删除新闻类别表(category)中数据时出现了无法删除并提示外键冲突的情况。
分析
1、查看数据表关系,news表和category的主外键相连
2、原因
如果上述联系存在,删除category如果可行,那么news表中caId中就没有了数据来源,所以删除不能通过。
同理,当删除news 表中的数据时,也会提示不可删除,引文news和comment通过主外键相连。
那么,怎样才能删除数据呢?
其实原理很简单,我用两个图片来说明这个删除规则。
(1)允许规则
(2)禁止规则
每张有关联的表就像楼房,层与层之间有关联一样,不拆除最上面一层,下一层是不允许拆除的。上述表关系可以这样认为:comment是三层,news是二层, category是一层。
解决办法
1、先删除comment表数据,再删除news表数据,最后删除category表数据。
按照这个步骤操作,还是出现了同样的问题,不能删除,还是提示受关系约束
2、删除关系(主外键),然后表中数据
这样可以成功删除数据。 数据删除了,但是表的联系破坏了,数据删除后,还要重新建立联系。
3、不删除关系,禁用外键约束(网上这样说,但未能实现)
- 1楼u01303422358分钟前
- 这个自己也碰到过,主外键关系的约束。