将简单外键约束添加到表

时间:2017-10-31 06:53:28

标签: mysql

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

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

DATABASE ERROR

  

1452 - 无法添加或更新子行:外键约束失败(database#sql-2494_108,CONSTRAINT   fk_manufacturer_tyre_model FOREIGN KEY(ManufacturerId)参考   tyresys_manufacturerId)ON UPDATE CASCADE)

表 - tyresys_manufacturer

Id - int

Name

表 tyresys_tyre_model

Id

ManufacturerId - int

Name

有一种简单的方法吗?而不是做一个SQL查询?

1 个答案:

答案 0 :(得分:0)

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

您执行以下查询以获取ManufacturerId s

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