#1452-无法添加或更新子行:外键约束失败(`testdatabase`。#sql-1

时间:2016-03-28 05:40:25

标签: mysql foreign-key-relationship

如何在现有表中添加外键

ALTER TABLE retailer_commission ADD FOREIGN KEY (Retailer_Id) REFERENCES retailer(Id)

enter image description here

2 个答案:

答案 0 :(得分:0)

由于Retailer_id表中retailer_commission列的类型和Id表中的retailer列都属于同一类型(int(11)) ,你的错误必须有另一种解释。

一个可能的解释是retailer_commission表中的Retailer_id值记录引用了retailer中不存在的记录。

如果以下查询为您提供非空集,则返回的记录应视为有问题:

SELECT rc.*
FROM retailer_commission rc LEFT JOIN retailer r
    ON rc.Retailer_id = r.Id
WHERE r.Id IS NULL

答案 1 :(得分:0)

问题已经解决,在外键表中有很多记录是发生此错误的原因,我截断了这个表(外表)然后执行“ALTER TABLE retailer_commission ADD FOREIGN KEY(Retailer_Id)REFERENCES零售商( Id)“,查询已成功完成。