2011-04-01 145 views
0

我有以下查詢:錯誤添加外鍵約束

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

回答

1

這意味着您在ROUTE表中已經有不滿足外鍵約束的數據。

要找到有問題的記錄,這樣你就可以將其更新到其他值(存在),可以使用

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

謝謝,這解決了我的問題 – aherlambang 2011-04-01 05:23:15

0

有可能B 2倍的原因

  • 有可能b某行在ROUTE表具有RID並不在RESERVATION(RID)
  • 存在或檢查DATATYPEROUTE (RID) & RESERVATION(RID)兩者應該相同(無符號/有符號)