将数据从csv文件导入mysql数据库
我正在尝试从仍在excel中的csv文件加载数据。到目前为止,这是作为sql查询的语句:将数据从csv文件导入mysql数据库,mysql,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,Utilit
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);
该文件名为TMETER,共有7列。它有366行。我只能读取第一行和前四列(直到MJD),但此后所有内容都为空。其次,在第二行中,它将第124行中我的文件(TMETER.csv)中的所有列放入edata表第二行的第一列。我不知道该怎么办
任何帮助都将不胜感激。当您运行该命令时,它会给出一条消息,如
记录:1删除:0跳过:0警告:0
。如果有任何警告,请键入显示警告
,查看它们是什么
这听起来像是我在行尾错误时有时会遇到的行为。请尝试在代码编辑器中打开文档并检查以确保行实际以\n结尾。如果不方便,您也可以尝试删除表并重新导入以“\r”结尾的行或以“\r\n”
结尾的行我看看这是否能解决问题
关于字段名:此命令忽略文本文件中的字段名。它所做的只是将第一列与括号中的第一个字段(在您的情况下为年)相匹配,将第二列与括号中的第二个字段(月)相匹配,等等。如果您的文件顶部有字段名,您应该跳过它们,在字段列表的括号前添加忽略1行。我不确定您是否理解此问题,感谢您的回复。执行此语句时,我没有收到任何警告。在我的csv文件中,我有7列。我的语句为ev返回MJD列的值。在此之后,它不会读取任何内容。如果包含,请在我的sql语句-x(piles)中指定该列的实际名称-如果列名抛出错误,说明错误代码1064,SQL state 42000:您的SQL语法有错误;请查看与您的MySQL服务器版本对应的手册,以了解使用near'(piles),y(stacks)的正确语法'我不知道如何使用此列名将数据读取到我的表中,我想这就是为什么它一直跳到第124行的原因。我用代码编辑器打开文档,每一行都被终止,确定您的解决方案部分工作…我使用了忽略1行,它正在将csv文件中的所有列读取到数据库中。问题是它仍然在跳过行…它现在一直跳到第156行,查看第156行(实际上可能是第157行),看看是否有任何不寻常的字符。也许是一个文本字段,里面有换行符?