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~
