[英]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.