【问题标题】:Database Structure Error数据库结构错误
【发布时间】:2016-12-06 15:34:12
【问题描述】:

我有一个表食物有列:

  • Food_id(PK)
  • 食物名称
  • 食物描述
  • 食物图片
  • Category_id(FK)
  • Res_id(FK)

而另一张桌子是餐厅有列:

  • Res_id(PK)
  • 资源名称
  • Food_id(FK)
  • 位置
  • 电子邮件

当我尝试向任何表中插入记录时,会出现如下错误:

获取“#1452 - 无法添加或更新子行:外键约束失败”

表的结构是否正确?

【问题讨论】:

  • 你有一个循环依赖。你需要摆脱它。
  • 请不要使用不相关的标签。 MySql 不是 SQL Server。
  • 我怎样才能摆脱它?
  • 看起来您正在尝试处理多对多关系。你所拥有的不是做到这一点的方法。正如此处发布的那样,您必须在餐厅中为他们携带的每种食物再排一排。此外,超过 1 家餐厅的每种食物都会多出一行。
  • @SeanLange 我该如何纠正?

标签: mysql database


【解决方案1】:

我的第一个猜测(不知道您使用的是哪个数据库)是两个外键设置为 NOT NULL,这意味着如果没有要引用的 Restaurant 记录,就无法创建 Foods 记录,并且无法创建 Restaurant 记录没有食物记录可供参考。尝试将它们设为可选,甚至删除外键,然后尝试添加记录。如果可行,您可以在之后使用 UPDATE TABLE 命令恢复外键(查看数据库的参考指南以查看语法细节)。

【讨论】:

  • 这不会解决所发布设计的明显标准化问题。不过,它会允许插入发生。
猜你喜欢
  • 2013-08-05
  • 1970-01-01
  • 2023-03-31
  • 1970-01-01
  • 2010-10-30
  • 2014-08-17
  • 1970-01-01
  • 1970-01-01
  • 2013-09-13
相关资源
最近更新 更多