将CSV导入MySQL - 偏移1列

时间:2014-09-05 17:44:15

标签: mysql sql csv import

我从csv文件导入我的数据,如下所示:

LOAD DATA LOCAL INFILE "c:\myfile.csv" INTO TABLE historic FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';

这个ALMOST非常完美。我的表有一个不同的行,第一行:自动递增的id列。否则,csv文件和MySQL表完全匹配。当我运行上面的命令时,它会将csv中的第一列放入id字段。它希望它实际上进入第二个。

有没有办法可以修改上面的语句来指定列或者只是将它偏移1? (在导入时跳过第一列)。

2 个答案:

答案 0 :(得分:2)

您可以选择命名要由LOAD DATA填充的列,只需省略id列:

LOAD DATA LOCAL INFILE "c:\myfile.csv" INTO TABLE historic 
FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n' 
(column2, colum3, column4, column5, ...)

答案 1 :(得分:1)

您可以将指定要使用的订单列的数据加载到表中:     LOAD DATA LOCAL FILE' / tmp / test.txt'INTO TABLE历史性     (name_field1,name_field2,name_field3 ...);

或者,如果您愿意,可以先将其加载到临时表中,然后使用select into语句将其添加到最终表中(速度较慢)。