我有客户,反馈和维修表。客户可以提供许多反馈并进行多次维修。在反馈表中,我创建了一个clientid列(也添加了索引),并且我能够为clients表的clientid列(主键)创建一个外键。
问题是我无法对维修表做同样的事情。即使我在修复表中创建了一个clientid列(索引)并且它与clients表中的clientid具有相同的属性,我得到以下内容:
MySQL说:文档
#1452 - 无法添加或更新子行:外键约束 失败(
ccsdb
。, CONSTRAINT#sql-3f0_8e5_ibfk_1
FOREIGN KEY(client_id
)参考clients
(client_id
)ON UPETE CASCADE ON UPDATE CASCADE)
答案 0 :(得分:0)
Cannot add or update a child row: a foreign key constraint fails
)
要在2个表之间添加引用,条件必须适合现有数据。
这意味着如果您说table1.id = table2.id
,那么table1
和table2
的所有ID都必须匹配。
要解决此问题,您必须消除或修复那些不匹配的行。
例如:
table1.id | table2.fk
1 | 1 ok
2 | null error
3 | 4 error if id 4 is not in table1