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