[英]MySQL: Cannot add a foreign key
我最近將一些表移到了新數據庫中。 我保留了這些表的外鍵,使其指向舊數據庫中的表。
然后,我創建了引用表的新版本。 我首先嘗試修改 FK,以便它們將指向新的引用。 那沒有用,所以我放棄了所有舊的FK並嘗試創建新的FK。 第一階段順利進行。 盡管第二階段以相同的方式對每個表都失敗了! 響應總是像:
ERROR 1452: Cannot add or update a child row: a foreign key constraint fails (`ml`.`#sql-d04_2`, CONSTRAINT `FK_excoeff_secID` FOREIGN KEY (`SecurityID`) REFERENCES `securities` (`SecurityID`))
該故障立即顯示,並且似乎與實際數據無關。 如您所見,在錯誤消息中,表名通常所在的位置現在充滿了一個奇怪的字符串。 而且無論引用表是什么,錯誤都包含相同的字符串。
所有這些都發生在MySQL WorkBench的“ Alter table”部分中,而且還作為常規SQL查詢發生。
我哪里做錯了???
Peter Brawly先生, 在MySQL論壇中非常有幫助。 他的回答是:
檢測罪魁禍首的SQL查詢是:
從child_table AS中選擇DISTINCT c.ID AS c從LEFT JOIN parent_table AS中選擇p.ID為NULL的p使用(ID);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.