2012-05-27 109 views
2

我有一個客戶,反饋和修復表。客戶可以提供許多反饋並進行許多修理。在反饋表中,我創建了一個clientid列(也添加了索引),我可以爲客戶端表的clientid列(主鍵)創建一個外鍵。無法創建外鍵約束

問題是我無法對修理表做同樣的事情。儘管我已經創建的維修表內的客戶端ID列(索引),它具有相同的屬性客戶表我得到以下範圍內的客戶端ID:

MySQL表示:文件

#1452 - 不能添加或更新子行(ccsdb, 約束#sql-3f0_8e5_ibfk_1外鍵(client_id)參考文獻 clientsclient_id)ON DELETE CASCADE ON UPDATE CASCADE)的外鍵約束 失敗

回答

0

即誤差(Cannot add or update a child row: a foreign key constraint fails)在MySQL FK Doc

參考表2的條件必須適合用於現有的數據之間添加一個引用。

如果你說table1.id = table2.id那麼table1table2所有的ID必須匹配在一起意思。

爲了解決您必須消除或修復那些不匹配的行。
例子:

table1.id | table2.fk 
    1  |  1  ok 
    2  |  null  error 
    3  |  4  error if id 4 is not in table1 
+0

絕對正確的隊友,我刪除了該有自己的clientid參考不匹配的客戶表中的客戶端ID的修表entres,它讓我建立外鍵。非常感謝。 – user1347219