DELET语句与REFERENCE约束“FK_news_category”冲突,该冲突发生于数据库“newssystem”,表dbo.news,column 'caId'语句终止

 

问题

          做牛腩新闻发布系统,当删除新闻类别表(category)中数据时出现了无法删除并提示外键冲突的情况。

               DELET语句与REFERENCE约束“FK_news_category”冲突,该冲突发生于数据库“newssystem”,表dbo.news,column 'caId'语句终止_第1张图片

 

分析

            1、查看数据表关系,news表和category的主外键相连

         

        2、原因

              如果上述联系存在,删除category如果可行,那么news表中caId中就没有了数据来源,所以删除不能通过。

同理,当删除news 表中的数据时,也会提示不可删除,引文news和comment通过主外键相连。

         那么,怎样才能删除数据呢?

         其实原理很简单,我用两个图片来说明这个删除规则。

          (1)允许规则

                DELET语句与REFERENCE约束“FK_news_category”冲突,该冲突发生于数据库“newssystem”,表dbo.news,column 'caId'语句终止_第2张图片

          (2)禁止规则

               

 

              每张有关联的表就像楼房,层与层之间有关联一样,不拆除最上面一层,下一层是不允许拆除的。上述表关系可以这样认为:comment是三层,news是二层, category是一层。

  

解决办法     

                  1、先删除comment表数据,再删除news表数据,最后删除category表数据。

                  按照这个步骤操作,还是出现了同样的问题,不能删除,还是提示受关系约束

                 2、删除关系(主外键),然后表中数据

                 这样可以成功删除数据。  数据删除了,但是表的联系破坏了,数据删除后,还要重新建立联系。

                3、不删除关系,禁用外键约束(网上这样说,但未能实现)

                                

 

 

 

 

 

你可能感兴趣的:(DELET语句与REFERENCE约束“FK_news_category”冲突,该冲突发生于数据库“newssystem”,表dbo.news,column 'caId'语句终止)