优秀的你是否还在为navicat执行sql文件报错,数据导入不全而发愁?

小艾之前在工作中遇到的问题是线上导出的sql文件在本地导入Naviact的时候数据和数据表导入不全;当时的问题是建库和表的数据结构编码有误导致,当时没有记录;但是最近又遇到了类似的问题,但错误不是之前的的那个;今天特意记录下我想也会有人会遇到这个问题

错误原因1:是Navicat 导出的sql文件的编码或者是数据库选择的有问题;

解决办法:统一两个库表的编码和结构即可;

错误原因2:在mysql 5中,默认的是REAL_AS_FLOAT,PIPES_AS_CONTACT,ANSI_QUOTES,GNORE_SPACE和ANSI,
在这种模式下,允许插入超过字段长度的值,只是插入后,返回的是警告而不是错误,当用STRICT_TRANS_TABLES时,
则是错误了,严格的警告;

解决办法:更改严格模式,执行下列sql后再导入sql文件;

SET sql_mode = '';

SET GLOBAL sql_mode = '';

注意:

当用"SET sql_mode=''"时,mysql清除的默认的模式信息,

但是这也有一个问题,那就mysql不会作入侵检测,错误提示,

这就要求程序员在进行sql操作的时候更加小心。可以将上面sql加入到sql文件中先执行

猜你喜欢

转载自blog.csdn.net/weixin_39860188/article/details/104634806