今天在使用MySQL的LOAD DATA INFILE导入百万条数据后发现,凡是源文件中带有中文的,对应数据表字段值都为空,如图所示:
反反复复对照MySQL提供的api核对了好久格式,也查阅了大量资料,无果。
头疼了半天,sql语句如下:
起初想到可能是编码格式不匹配的问题,但是怎么看都没觉得不对。
后来仔细回想了一下拿到文件后的操作。
刚拿到文件时的格式为UTF-8,双击打开据数据信息后在数据库做了一下表结构。
乍一看似乎没什么问题,但问题就在微妙之间诞生了。
如果你使用的不是记事本打开的,那么此时文件的格式已经被改变了(非常恶心)
解决方式:
方式一:需要我们手动将文件格式改回utf-8格式
方式二:文件无需修改,编码格式改为gb2312即可(图示)
解决后:
解决MySQL中使用Load Data Infile时只能导入一半的数据
如有错误,欢迎指正
Thanks