mysql1452错误

admin表中有字段admin_name和admin_realname。notice表中有字段admin_name。之前,notice表中admin_name的外键是admin表的admin_name,现在想改成admin_realname,数据类型和字段长度都一样,但却提示1452错误,如下图所示。

 

然后百度了一下,得到了一个靠谱的答案:

这是因为表设置了外键约束,而你试图插入一条外键字段所在表纪录不存在的一个值,就会报1452错。
比如a、b两表,a表外键id值来自b表的ID。当你在a表中插入一条纪录时,id字段用了不在b表ID值范围内的值,就会报此错。

然后我恍然大悟,因为notice表里面有两条记录,改了外键,但表里面已有记录的值不在admin_realname的取值范围内,所以就报错了。我更改了记录内容,再修改外键就成功了。

 Sanding原创,转载请标注,thank you~

原文地址:https://www.cnblogs.com/Aha-Sanding/p/5575766.html