当前位置: 首页 > 知识库问答 >
问题:

无法创建关系

万乐逸
2023-03-14

我有一个Orders表,其中的< code>resellerID列是一个可空整数。在大多数记录中,< code>resellerID为NULL,但有时它包含一个与Resellers表相关联的整数,该表包含< code>resellerID和< code>resellerName列。

当我尝试添加两个resellerID之间的关系时,我收到以下错误:

- Unable to create relationship 'FK_Orders_Resellers'.  
The ALTER TABLE statement conflicted with the FOREIGN KEY constraint "FK_Orders_Resellers". The conflict occurred in database "sales", table "dbo.Resellers", column 'resellerID'.

问题是<code>Orders的可为Null性质吗。经销商ID列?这是一个糟糕的设计选择吗?我应该怎么做才能像专业人士一样修复?

数据库是由一个离开公司的程序员设计的,可能我想修复它。

谢谢

编辑:即使< code>Orders.resellerID列只包含空值,也会出现错误。

共有3个答案

晏鸿畅
2023-03-14

与往常一样,问题出在列数据中。

慕嘉茂
2023-03-14

您应该为经销商创建一个默认值,当订单表没有经销商值时,它应该引用该值。有点像这样:

  1. 将订单表中的所有 NULL 替换为 -1。更新订单 设置经销商 ID = -1,其中经销商 ID 为空
  2. 将默认值插入到经销商表中。插入到经销商(经销商 ID、经销商名称)值 (-1, '');
  3. 应用您的 FK。
  4. 更改加载 Orders.resellerID
  5. 的所有代码以执行 COALESCE(经销商 ID, -1) 或为 Orders.resellerID 列设置默认值
罗安和
2023-03-14

您的订单表中的值null在您的经销商表中不可用,请创建一个名称中未分配的经销商,并将该值添加到您的订单表中,然后创建关系。

 类似资料:
  • 我试图在Neo4j中插入两个节点之间的关系。我正在使用Neo4J(2.1.8社区) 我正在使用尝试创建员工经理关系。此关系实体是报表。(两个类都在下面给出) 但当我试图挽救这段感情的时候 我得到了例外作为 线程“main”组织中出现异常。springframework。刀。DataRetrievalFailureException:关系[0]没有propertyKey=“type”的属性。;嵌套的

  • 我已经在windows上安装了PySpark,直到昨天都没有问题。我使用的是、、。昨天,当我尝试创建一个spark会话时,我遇到了以下错误。 我确实查看了github上的pyspark问题以及stackoverflow问题,但这个问题没有解决。 2.)尝试设置,但没有帮助。 请建议我可能的解决办法。

  • 我的代码更长,但我没有复制所有的代码,我看到程序停在这里 对不起我的英语。

  • 我试图在laravel中创建一个主键-外键关系,但我一直遇到这个错误 我似乎找不到哪里出错了,因为我在查看了SO上的其他答案后,对模式进行了更改。 当我运行时,上面的错误会弹出,这是一个部分迁移。 任何指向这将是真棒,因为我已经寻找了一段时间的解决方案! 谢谢 员工表 部门表 工资表 新增:DB播种机。 根据评论更改了DB种子程序

  • 我写了一个简单的go服务器和客户端,客户端发送两个数字,服务器用总和回复,它工作了。现在,我正在尝试使用grpc API配置设置grpc网关,并将客户端的请求从grpc更改为rest。 我正在使用本教程,在以下部分中,我无法创建gw,但没有错误: 我用了这个: 在这个问题之后,我搜索并找到了这种既不工作(没有错误也没有输出!): 我在grpc测试目录中运行它,目录树如下: 那么,我做错了什么? 编

  • 问题内容: 我正在使用node.js,并将音频流式传输到我的node.js服务器。现在,我在构建音频Blob的过程中注意到: 我在新的Blob处收到ReferenceError。似乎不支持Blob。如何创建要使用node.js fs模块保存的Blob。 谢谢你们! 问题答案: 解决此问题的方法是创建一个可以在数组缓冲区和节点缓冲区之间转换的函数。 将二进制NodeJS缓冲区转换为JavaScrip