在执行一条sql的时候的时候 突然报错1452 ,整个人都懵了。
其实1452的错误主要原因就是:有外键的子表对应的主表中没有数据。
比方说:
class表:
id | name |
1 |
尖子班 |
2 |
普通班 |
student表:
id | name | class_id |
1 | 张三 | 1 |
2 | 李四 | 2 |
3 | 王五 | 3 |
结果呢,子表里的王五对应class_id为3的class没有对应的数据。
所以不论你这么执行更新语句对王五操作 他都会报错。
其实真实原因是:
我从正式库copy了一份“班级表”,然后有copy了一份“学生表”,然后我对学生表操作就错了。
因为在copy班级表后,copy学生表之前,线上正好有添加新的班级和学生,然后我这里copy过来的数据就只有学生,没有班级,就完了。。。。
好尴尬。
所以千万别乱搞。。。
解决方案1:
清空 两张表,重新做。
解决方案2:
用sql删除掉外键对应的主表没有数据的数据。