前言:用python造了点假数据生成了csv文件,看网上将csv文件导入sqlyog挺简单的,于是随便找了个教程试试,出现了各种错误。
Loading local data is disabled; this must be enabled on both the client and server sidesInvalid utf8mb3 character string:"- ......
以上等问题均可在网上找到答案。
下面才是大坑!!!
解决完以上所有问题后,导入文件提示:出现了1619个警告,而且显示Records120条(我明明只有20条数据呀?!)
看不懂这些警告,在网上也没找出解决办法,然后我想着是不是我的csv文件没有设置表头啊?
于是我设置了表头,再次导入到sqlyog。然后还是存在很多条Warning。
查看了一下导入的数据,发现day字段(数据类型为timestamp)及其之后的字段数据都基本上为(Null)。
于是我把csv文件中的day数据清除掉,但是还是出现很多Warning。
后面我在网上看到一些文章,初步判断应该是csv文件和数据库字段类型没对上的原因。
但是我反复检查了几遍,发现没有任何问题,然后一遍又一遍导入数据删除数据,终于找到了问题所在!
day前面一个字段introduce的数据是一段文本,文本中含有很多换行符,而导入文件设置的终止符就是\n,所以导致后面字段数据类型和插入值不匹配。
还有两个注意点:
- csv文件不需要表头,否则会把表头当成数据录入。
- 导入路径不能含中文,否则提示找不到文件。
总结:对于导入数据来说,如果数据类型匹配不上不止要检查对应的数据,还要看看前面的数据会不会产生影响哦。
PS:本来以为挺简单的问题,还是耗费了挺久时间的。又是和bug斗争的一天,浅浅记录一下😆。