[英]MySQL: Cannot add a foreign key
我最近将一些表移到了新数据库中。 我保留了这些表的外键,使其指向旧数据库中的表。
然后,我创建了引用表的新版本。 我首先尝试修改 FK,以便它们将指向新的引用。 那没有用,所以我放弃了所有旧的FK并尝试创建新的FK。 第一阶段顺利进行。 尽管第二阶段以相同的方式对每个表都失败了! 响应总是像:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`ml`.`#sql-d04_2`, CONSTRAINT `FK_excoeff_secID` FOREIGN KEY (`SecurityID`) REFERENCES `securities` (`SecurityID`))
该故障立即显示,并且似乎与实际数据无关。 如您所见,在错误消息中,表名通常所在的位置现在充满了一个奇怪的字符串。 而且无论引用表是什么,错误都包含相同的字符串。
所有这些都发生在MySQL WorkBench的“ Alter table”部分中,而且还作为常规SQL查询发生。
我哪里做错了???
Peter Brawly先生, 在MySQL论坛中非常有帮助。 他的回答是:
检测罪魁祸首的SQL查询是:
从child_table AS中选择DISTINCT c.ID AS c从LEFT JOIN parent_table AS中选择p.ID为NULL的p使用(ID);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.