WHCSRL 技术网

解决MySQL中使用Load Data Infile时只能导入一半的数据

今天在使用MySQLLOAD DATA INFILE成功导入数据后发现,原本10w条数据只导入了5w条数据,一条不多,一条不少(还刚好都是单数)。。。

 SQL语句如下:

  1. LOAD DATA LOCAL INFILE 'D:/milliondatatest/userinfo.csv'
  2. INTO TABLE userinfo CHARACTER SET UTF8
  3. FIELDS TERMINATED by ','
  4. OPTIONALLY ENCLOSED by '"'
  5. LINES TERMINATED by ' '
  6. (uid,uname,uphone,uaddress)

 数据添加后数据库如图:

 头皮发麻,然后又去仔细查看了一下MySQL的api文档。

原因是因为所用到的数据文件,换行用的是 ,而LOAD DATA INFILE默认的换行符为 。

 在导入语句中加入LINE TERMINATED BY ' '  ' ' 改为 ' ' 即可解决问题

LINE TERMINATED BY '
' 

' '是回车,前者使光标到行首,(carriage return)

' '是换行,后者使光标下移一格,(line feed)

 修改后的SQL如下:

 执行结果:

 出现这些问题的根本原因还是因为对mysql的规则不熟悉。不过问题总是需要我们一步步解决的,失败乃成功之母;遇到的错误多了,未来的路就会更加顺畅。

解决MySQL中使用Load Data Infile时无法导入中文


如有错误,欢迎指正

Thanks

推荐阅读