将csv文件导入sqlyog的踩坑之路

252 阅读2分钟

前言:用python造了点假数据生成了csv文件,看网上将csv文件导入sqlyog挺简单的,于是随便找了个教程试试,出现了各种错误。

  • Loading local data is disabled; this must be enabled on both the client and server sides
  • Invalid utf8mb3 character string:"
  • ......

以上等问题均可在网上找到答案。

下面才是大坑!!!

解决完以上所有问题后,导入文件提示:出现了1619个警告,而且显示Records120条(我明明只有20条数据呀?!)

Snipaste_2024-02-29_16-29-32.png

Snipaste_2024-02-29_16-30-37.png

看不懂这些警告,在网上也没找出解决办法,然后我想着是不是我的csv文件没有设置表头啊?

于是我设置了表头,再次导入到sqlyog。然后还是存在很多条Warning。

image.png

查看了一下导入的数据,发现day字段(数据类型为timestamp)及其之后的字段数据都基本上为(Null)。

于是我把csv文件中的day数据清除掉,但是还是出现很多Warning。

后面我在网上看到一些文章,初步判断应该是csv文件和数据库字段类型没对上的原因。

但是我反复检查了几遍,发现没有任何问题,然后一遍又一遍导入数据删除数据,终于找到了问题所在!

day前面一个字段introduce的数据是一段文本,文本中含有很多换行符,而导入文件设置的终止符就是\n,所以导致后面字段数据类型和插入值不匹配。

image.png

还有两个注意点:

  • csv文件不需要表头,否则会把表头当成数据录入。
  • 导入路径不能含中文,否则提示找不到文件。

总结:对于导入数据来说,如果数据类型匹配不上不止要检查对应的数据,还要看看前面的数据会不会产生影响哦。

PS:本来以为挺简单的问题,还是耗费了挺久时间的。又是和bug斗争的一天,浅浅记录一下😆。