添加外键约束时出错

时间:2011-04-01 05:08:03

标签: mysql phpmyadmin

我有以下查询:

ALTER TABLE ROUTE ADD FOREIGN KEY (RID) REFERENCES RESERVATION(RID) ON DELETE CASCADE

但它会产生错误:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`SmarTrek`.`#sql-91e_d09`, CONSTRAINT `FK_RID` FOREIGN KEY (`RID`) REFERENCES `RESERVATION` (`RID`) ON DELETE CASCADE)

在设计师模式中,这是它的样子: enter image description here

2 个答案:

答案 0 :(得分:1)

这意味着您已经在ROUTE表中拥有不满足外键约束的数据。

要查找违规记录,以便将其更新为其他值(存在),可以使用

select *
from route
where rid not in (select rid from reservation)

答案 1 :(得分:0)

可能有两个原因

  • ROUTE表格中可能有RID
  • 中不存在RESERVATION(RID)的行
  • 或查看 DATATYPE OF ROUTE (RID)& RESERVATION(RID)两者应该相同(未签名/签名)