2014-09-05 184 views
0
1列

偏移我從csv文件導入我的數據是這樣的:導入CSV到MySQL - 通過

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

這個近乎完美的作品。我的表格有一個不同的行,第一個:自動遞增的id列。否則csv文件和MySQL表完美匹配。當我運行上面的命令時,它將csv中的第一列放入id字段中。它希望它真的進入第二個。

有沒有辦法可以修改上述語句來指定列或只是將其偏移1? (跳過導入的第一列)。

+0

您是否嘗試將其首先加載到臨時表中,並將select用於最終表中?所以你可以指定你想要的列。 – vinibarr 2014-09-05 17:49:54

+0

@vinibarr不,我沒有。我想先看看這是否可能在一個命令。 – KickingLettuce 2014-09-05 17:50:44

+0

我知道你可以忽略來自源文件的列,但忽略你命運表上的列,我認爲是不可能的。 – vinibarr 2014-09-05 17:51:44

回答

1

您可以加載數據specifing,你要使用到表中的順序列: LOAD DATA LOCAL FILE'/tmp/test.txt'INTO TABLE historic (name_field1,name_field2,name_field3 ...);

或者,如果你願意,你可以先加載到一個臨時表和使用select into語句將其LAOD到你最後的表(這是慢)。

2

您可以選擇Name以按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, ...)