2012-04-22 47 views
0

,這是我的知己聲明試圖連接兩個表:Mysql的改變聲明

ALTER TABLE my_contacts 
    CHANGE `profession` `profession_id` INT NOT NULL, 
    ADD CONSTRAINT professions_profession_id_fk 
    FOREIGN KEY (profession_id) REFERENCES professions (profession_id) 

,我有以下錯誤:

#1452 - Cannot add or update a child row: a foreign key constraint fails (`contacts`.<result 2 when explaining filename '#sql-1ca_73'>, CONSTRAINT `professions_profession_id_fk` FOREIGN KEY (`profession_id`) REFERENCES `professions` (`profession_id`)) 

任何人都可以指導我這是什麼?我實際上在學習如何自己編寫sql,因爲我一直使用這些工具。

回答

1

您的外鍵約束失敗。

您嘗試創建的外鍵會強制my_contacts中的每個profession_id出現在您的職業表中。現在,情況並非如此。您應該查找my_contacts中profession_id不存在於職業中的所有記錄,並首先修復這些記錄。

1

這是一種關係衝突。一個容易解決,這是

  • 再次領域
  • 同時加入了關係之間阿爾特刪除的關係,解決您會收到錯誤。