【问题标题】:Adding Simple Foreign Key Constraint to my Table向我的表添加简单的外键约束
【发布时间】:2017-11-01 05:52:20
【问题描述】:

我不确定我犯了什么错误,请帮忙。

ALTER TABLE tyresys_tyre_model 
ADD CONSTRAINT fk_manufacturer_tyre_model 
FOREIGN KEY (ManufacturerId) 
REFERENCES tyresys_manufacturer(Id)
ON DELETE RESTRICT
ON UPDATE CASCADE;

数据库错误

1452 - 无法添加或更新子行:外键约束失败(database.#sql-2494_108, CONSTRAINT fk_manufacturer_tyre_model 外键 (ManufacturerId) 参考 tyresys_manufacturer (Id) 更新级联)

表 - tyresys_manufacturer

Id - int

Name

表 tyresys_tyre_model

Id

ManufacturerId - int

Name

有没有简单的方法来做到这一点?而不是执行 SQL 查询?

【问题讨论】:

  • 那些表已经填充了吗?
  • 这可能是因为表中已经存在数据。你能验证一次吗?
  • 感谢大家的帮助,tyre_model 表中有一个数据有错误的键。导致错误的原因

标签: mysql


【解决方案1】:

很可能tyresys_tyre_model 表包含ManufacturerId 值,而该值不在您的tyresys_manufacturer 表中。您必须先delete/update 这些记录。

您执行以下查询以获取那些ManufacturerIds

SELECT ManufacturerId FROM tyresys_tyre_model  WHERE tyresys_tyre_model  NOT IN 
(SELECT id FROM tyresys_manufacturer)

【讨论】:

  • tyre_model 表中有一个数据,当我删除它时,它可以工作。非常感谢,昨晚我被这个问题困了几个小时,压力很大。一个简单的错误就毁了所有这些研究。
猜你喜欢
  • 2017-06-10
  • 1970-01-01
  • 2016-05-04
  • 2011-07-12
  • 2017-09-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-01
相关资源
最近更新 更多