簡體   English   中英

MySQL:無法添加外鍵

[英]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論壇中非常有幫助。 他的回答是:

  1. “奇怪的字符串”只是內部使用的臨時表的名稱
  2. 失敗的原因可能是一種舊的方式-違反了數據中的參照完整性。 他是對的!
  3. 檢測罪魁禍首的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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM