簡體   English   中英

MySQL錯誤1452

[英]MySQL error 1452

這是劇本

    ALTER TABLE `candycorn`.`bb_users` 
    ADD CONSTRAINT `pf_minecraftusername`
    FOREIGN KEY (`pf_minecraftusername`)
    REFERENCES `candycorn`.`bb_profile_fields_data` (`pf_minecraftusername`)
    ON DELETE NO ACTION
    ON UPDATE NO ACTION;

和錯誤說明

    ERROR 1452: Cannot add or update a child row: a foreign key constraint fails  
    (`candycorn`.<result 2 when explaining filename '#sql-4e4_1785d'>, CONSTRAINT
    `pf_minecraftusername` FOREIGN KEY (`pf_minecraftusername`) REFERENCES 
    `bb_profile_fields_data` (`pf_minecraftusern)

如果有人可以,您能解釋一下我在這里錯過了什么嗎?

表中已有的某些數據無法滿足您要添加的約束。 這可能是因為在bb_users的相應列( pf_minecraftusername )中bb_profile_fields_data bb_users表中的值。

如果必須將約束添加到已經有數據的表中,則必須首先手動清理表。 或者,您可以清空表(使用截斷或在執行“ drop database ”后重新創建表),然后添加約束,然后運行將表中的數據放入腳本中的任何腳本。

當然,如果這是生產系統,則需要先進行更復雜的數據修復,然后才能成功添加約束。

最后,我建議您制作一個完全沒有數據的數據庫虛擬副本,並在其中添加約束,以檢查是否正確指定了約束。 您不想被錯誤的樹纏住。

帶有NOCHECK ADD CONSTRAINT [FK_1] FOREIGN KEY([[ Column name ]])的ALTER TABLE tablename Column name引用餐廳([ column name ])

似乎數據已經存在於表中。因此您需要使用上述查詢來修改表。而無需重新創建表nd數據

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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