MySQL 创建外键 报错 1452 - Cannot add or update a child row: a foreign

大致报错内容

1452 - Cannot add or update a child row: a foreign key constraint fails

image.png

背景

navicat创建外键时报错
 

关于navicat创建外键具体步骤,参见此文:navicat 数据表添加外键

原因

两张表的数据不匹配(参见下图)
 
 
例子:
myorder表中userId字段是外键,关联user表中的userId字段。
 
myorder表中userId字段的值是0,而user表中没有userId=0的,这样就出现了数据不匹配的问题。如果ctrl+s保存myorder表就会报错。

MySQL 创建外键 报错 1452 - Cannot add or update a child row: a foreign_第1张图片

MySQL 创建外键 报错 1452 - Cannot add or update a child row: a foreign_第2张图片

MySQL 创建外键 报错 1452 - Cannot add or update a child row: a foreign_第3张图片

 
 
 
 

解决

修改myorder表中字段userId的值即可(与user表匹配)

ctrl+s,不再报错
MySQL 创建外键 报错 1452 - Cannot add or update a child row: a foreign_第4张图片

 
 

参考文章

Mysql错误1452 - Cannot add or update a child row: a foreign key constraint fails 原因及解决方法

你可能感兴趣的:(mysql)