我从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? (在导入时跳过第一列)。
答案 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语句将其添加到最终表中(速度较慢)。