尝试插入外键时出现错误 #1452

Posted

技术标签:

【中文标题】尝试插入外键时出现错误 #1452【英文标题】:Error #1452 when trying to insert foreign key 【发布时间】:2014-11-21 14:36:12 【问题描述】:

我正在尝试在我的表 A 中插入一个外键(在 phpmyadmin 中):

更改表 A 添加外键(id_B) 参考 B(id_B);

但我得到了错误:

1452 - 无法添加或更新子行:外键约束失败 (database., CONSTRAINT #sql-edf_534aa1_ibfk_1 FOREIGN KEY (id_B) REFERENCES @ 987654324@(id_B))

表 A 以 id_A 作为主键,表 B 以 id_B 作为主键。两个表都有innoDB作为存储引擎,表A中的id_B列和表B中的id_B列具有相同的类型。

出了什么问题,我该如何解决?

【问题讨论】:

这两个表中是否已有数据?如果是这样,添加约束将检查它是否真的成立。检查表 A 中的所有 id_b 值是否存在于表 B 中 【参考方案1】:

表 A 可能链接到无效的 id_B:

表 A 中存在一个 id_B,而表 B 中的 id_b 列中不存在。

【讨论】:

没错。表 A 的 id_B 列中有一个值,而表 B 的 id_B 列中不存在这个值。谢谢!

以上是关于尝试插入外键时出现错误 #1452的主要内容,如果未能解决你的问题,请参考以下文章

发生数据库错误 1452

有外键约束的子表插入数据时出现的错误

mysql1452错误

尝试添加外键时出现mysql错误

MySQL 中的外键约束错误 1452 - Magento 导入

接收错误 #1452 - 无法添加或更新子行”