zoukankan      html  css  js  c++  java
  • INSERT 语句与 FOREIGN KEY 约束"XXX"冲突。该冲突发生于数据库"XXX",表"XXX", column 'XXX。

           做牛腩新闻发布系统的时候遇到了这样的问题:INSERT语句与FOREIGN KEY约束“KF_news_category”冲突。该冲突发生于数据库“newsystem”,表“dbo.category”,column‘id’。

           运行程序添加不进去数据,就在SqlServer中直接添加数据,只能添加category表中的数据,news和comment表中无法插入数据,向news表或者comment表中添加数据时,就提示INSERT语句与FOREIGN KEY约束“KF_news_category”冲突。该冲突发生于数据库“newsystem”,表“dbo.category”,column‘id’。





    情景复现:

    数据库:

    牛腩新闻发布系统中共包含三个表:category表(类别表),news表(新闻表),comment表(内容表)。




    每个表中的字段:

    category表:

                        id(类别id)

                        name(类别名)

                

    news表:

                         id(新闻id)

                         title(新闻标题)

                         content(新闻内容)

                         createtime(创建时间)

                         caId(类别id——该条新闻属于哪个类别)

      

                        

    comment表:

                         id(评论id)

                         content(评论内容)

                         createtime(评论时间)

                         userIp(评论人的IP)

                         newsId(所评论新闻的id)



    三表关系

    category表中的id是news表的外键(在news表中使用的字段是caId),news表中的id是comment表的外键(在comment表中使用的字段是newsId)

           

    原因:

    (1)news表中的caId在category表中不存在

               (2)数据库关系图有主外键设置错误。

    理论解析:

    外键约束:

    news表存在一个字段caId,有外键约束,引用于category表的主键Id,那么在向news表插入数据时,字段caId必须为category表中Id已经存在的值,如果向中存放一个category中没有的值,则会报违反外键约束。

    数据库关系图两种情况分析:

    情况一:


          上图表明了category表的主键id在news表中是外键,而news表中的id则是comment表中的外键。

    情况二:


          上图则表示category的Id,必须和news表中的id一致,这样才能添加数据。

    总结:  

            在设计数据库关系图的时候,要注意两个表之间的连线是否正确。同时在插入数据时注意外键约束,这样就不会出现这样的错误了。



  • 相关阅读:
    面试题来积累自己
    基于php基础语言编写的小程序之计算器
    配置apache的虚拟机+软件下载
    执行表空间使用率SQL突然变慢问题分析
    DM-建库选项-字符串比较大小写敏感-测试
    OGG再次遇到虚拟列无法处理,导致进程abend二
    OGG应用进程abend报错无法insert虚拟列
    Oracle Asm Failgroup测试学习
    OGG复制进程报错,存在update set 主键列 is null
    测试:OGG初始化同步表,源端抽取进程scn<源端事务的start_scn时,这个变化是否会同步到目标库中?
  • 原文地址:https://www.cnblogs.com/chenxiaochan/p/7237627.html
Copyright © 2011-2022 走看看