替换mysql数据库上的约束,一个总是失败的
MySQL:5.5.27 phpMyAdmin:最新版本之一 我有一个数据库,其中包括以下表格:替换mysql数据库上的约束,一个总是失败的,mysql,constraints,Mysql,Constraints,MySQL:5.5.27 phpMyAdmin:最新版本之一 我有一个数据库,其中包括以下表格: 成员 语言 成员语言 由于我匆忙创建了它,并且为了测试的目的不得不填充它,我发现并不是所有的约束都是应该的。例如,member\u language表中的member\u id必须明显映射到member表中的mem\u id,而member\u language表中的language\u id必须映射到language表中的language\u id。因此,我重新创建了所有3个表,然后将所有数据
- 成员
- 语言
- 成员语言
#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好的,下面是问题所在 member_language表中确实缺少一些member_id值。这可能不是唯一的问题,但肯定有一个问题是我从phpMyAdmin创建的SQL导出文件跳过了一些值 这真的很奇怪,因为我可以在浏览视图中查看表中的值,但在导出时,它漏掉了表中的各行。因此确实存在不匹配,我认为这是造成问题的原因
如果我发现其他可能的原因,我将再次发布…您试图在该表中插入一条记录,但父表中不存在对应的记录。但这是奇怪的事情-它们确实都存在!在数据库中执行
显示发动机状态。在输出的中间位置将隐藏关于外键错误的更多详细信息。非常感谢。但是,我没有足够的权限在这个托管数据库上这样做。相反,我开始一张一张地拆开桌子——看看我的答案,看看我发现了什么!还有一件事:一些成员没有成员_语言的条目,因为系统中的遗留数据在前18个月没有存储这些数据。我认为它已经全部检查过了,但显然没有:-(。经验教训:将来,我将确保所有缺少项的遗留数据都将被指定一个默认值,即使它的计算结果为“未知”。从长远来看,这将节省时间。