将csv文件导入mysql

时间:2012-06-05 01:00:28

标签: mysql

我正在尝试从仍在excel中的csv文件加载数据。到目前为止,这是我作为我的SQL查询的声明:

LOAD DATA LOCAL INFILE 'C:\\Documents and Settings\\J03299\\Desktop\\TMETER.csv' 
INTO TABLE edata 
COLUMNS TERMINATED BY ',' ENCLOSED BY "" LINES TERMINATED BY '\n' 
(Year,Month,Day,MJD,xpiles,xstacks,Utilites); 

它导入第一行然后忽略每一行直到第157行?我想知道我的遗失是什么?由'\ n'终止的线路?我的数据看起来像这样

2012,23,45,-0.876,3.456,768.50,

某种程度上它不是在读取文件的结尾我猜

是否还有其他工具可用于导入此信息

4 个答案:

答案 0 :(得分:2)

您可以尝试使用Mysql workbench

OR

使用LINES TERMINATED BY ‘\r\n’

答案 1 :(得分:1)

解决了这个问题......这是我的愚蠢错误 apparanely我在创建桌子时使用年份作为主键但是年份不是唯一的。只有两个值表示2012年和2013年,所以它只读取了2012年的第一行,因为所有后续行都相同,所以它会忽略它们直到它到达2013(下一个唯一主键)并将第一行带到那个然后又放弃了。我的LOAD语句不是问题。感谢大家帮助我,在创建数据库表时,我应该做得更好

答案 2 :(得分:0)

在Windows上,行终止通常是回车符U+000d,后跟换行符U+000a。正如the manual所述:

  

注意

     

如果您在Windows系统上生成了文本文件,则可能必须使用LINES TERMINATED BY '\r\n'正确读取文件,因为Windows程序通常使用两个字符作为行终止符。某些程序(例如 WordPad )在编写文件时可能会使用\r作为行终止符。要阅读此类文件,请使用LINES TERMINATED BY '\r'

因此:

LOAD DATA LOCAL INFILE 'C:\Documents and Settings\J03299\Desktop\TMETER.csv'
    INTO TABLE edata
    COLUMNS
        TERMINATED BY ','
        ENCLOSED BY ''
    LINES
        TERMINATED BY '\r\n'
    (Year, Month, Day, MJD, xpiles, xstacks, Utilites)

答案 3 :(得分:0)

问题是你的SQL查询有:

LINES TERMINATED BY '\n' 

但您的数据已被','(逗号)终止。

2012,23,45,-0.876,3.456,768.50,

尝试将该行更改为:

 LINES TERMINATED BY ',\n' 

另一种方法是通过删除尾随逗号来清理输入数据。