日期:2014-05-16  浏览次数:20972 次

mysql 添加外键约束报错 1452
今天为一张表的字段添加一个外键约束:
ALTER TABLE `gjp`.`gjp$contacts`

  ADD CONSTRAINT `FK_city_contact`

  FOREIGN KEY (`city_id` )

  REFERENCES `gjp`.`gjp$cities` (`city_id` )

  ON DELETE NO ACTION

  ON UPDATE NO ACTION

, ADD INDEX `FK_city_contact` (`city_id` ASC) ;

执行结果报错:ERROR 1452 : Cannot add or update a child row: a foreign key constraint fails。。。

后来查看发现此表已有记录数据中该外键字段的值在主表在找不到。
解决办法就是在主表中添加该条数据或者将此表该条主表没有的数据改成主表已有的数据即可。