一、问题由来
该问题的发现是从测试环境向生产环境导数据时产生的,执行导入就报Cannot add foreign key constraint外键的错,刚开始以为是数据的问题,但是反复查看并没有发现有什么问题,陷入了僵局。
二、问题解决方法
经过各种查资料,了解到了其实就是因为外键检查导致的错误,于是就想到了我们可以临时关闭外键检查,这样等我们完成数据的导入,再进行开启那么就可以了。说干就干,查询mysql的官方手册,我们进行了尝试:
2.1 尝试一
我们大部分人在该步骤就可以解决问题,但是有时我们需要用尝试二的方法去解决,究其根本原因,我认为就是全局和局部的问题
select @@FOREIGN_KEY_CHECKS
结果如下,我们可以看到默认为1,代表检查外键,这就是我们导入数据报错的原因所在:
那么我们就可以将其置为0,即不检查外键这样就可以解决问题。命令如下: