批量导入数据到MySQL数据库

来源:互联网 发布:单纯和傻的区别 知乎 编辑:程序博客网 时间:2024/05/16 14:30

最近帮舍友做一个本地txt文件的数据的筛选处理。

需要先将txt中的数据导入到数据库中,数据量大概在几十万条,使用insert语句的时间太长,效率太差。

经过查找,使用load data infile 进行导入

下面是txt文件的部分数据截取

58238   3200N   11848E  8.9 1961    1   1   0.058238   3200N   11848E  8.9 1961    1   2   0.158238   3200N   11848E  8.9 1961    1   3   1.158238   3200N   11848E  8.9 1961    1   4   0.058238   3200N   11848E  8.9 1961    1   5   2.158238   3200N   11848E  8.9 1961    1   6   0.058238   3200N   11848E  8.9 1961    1   7   0.058238   3200N   11848E  8.9 1961    1   8   0.058238   3200N   11848E  8.9 1961    1   9   10.658238   3200N   11848E  8.9 1961    1   10  3.458238   3200N   11848E  8.9 1961    1   11  0.058238   3200N   11848E  8.9 1961    1   12  0.058238   3200N   11848E  8.9 1961    1   13  0.058238   3200N   11848E  8.9 1961    1   14  0.058238   3200N   11848E  8.9 1961    1   15  0.0

我的表的数据类型如下所示
这里写图片描述

一开始的语句为

LOAD DATA INFILE 'E:/file_new.txt' INTO TABLE tab_test

执行之后,发现报错,错误信息如下:

Exception in thread "main" java.sql.SQLException: Data truncated for column 'nvalue' at row 1

是最后一个数据类型double到不进去,经过查找,将导入的语句修改为如下:

LOAD DATA INFILE 'E:/file_new.txt' INTO TABLE tab_test fields terminated by '   ' lines terminated by '\r\n' (nid,num1,num2,num3,nyear,nmonth,nday,nvalue)

执行成功。

原因:对txt文本的内容进行解析,使用tab作为每个字段的间隔。