繁体   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