0

MySQL:5.5.27

phpMyAdmin:最新版本之一

我有一个数据库,其中包含以下表格:

  • 成员
  • 成员语言

当我匆忙创建它并且为了测试目的而不得不填充它时,我很晚才发现并不是所有的约束都是应有的。例如,member_language表中的member_id显然必须映射到member表中的mem_id,而member_language表中的language_id必须映射到language表中的lang_id。所以我重新创建了所有 3 个表,然后将所有数据重新导入到复制的表中:第一个成员,然后是语言,最后是成员语言。

然后我尝试对 member_language 强制执行约束,但它无法为member.mem_id创建 fk 约束,这会将其链接到member_language.member_id。每次它抛出

#1452 error - Cannot add or update a child row: a foreign key constraint fails (`dbname`.`#sql-122f_bec4cef`, CONSTRAINT `#sql-122f_bec4cef_ibfk_2` FOREIGN KEY (`member_id`) REFERENCES `member` (`mem_id`))

有人可以在这里指出我正确的方向吗?Tks SP

4

1 回答 1

0

好的,这就是问题所在。

member_language 表中确实缺少一些 member_id 值。这可能不是唯一的问题,但肯定有一个问题是我从 phpMyAdmin 创建的 SQL 导出文件跳过了一些值!

这真的很奇怪,因为我可以在查看表格时看到浏览视图中的值,但是在导出时,它在这里和那里错过了该表格中的行。所以确实存在不匹配,我假设这是导致问题的原因。

如果我发现其他可能的原因会再次发布...

于 2013-10-05T10:58:49.173 回答