我有一個非常大的製表符分隔文件。它大約有500列,可能還有一百萬條記錄。它是文本,日期和數字的組合。實際上我只對從裏面的幾列感興趣 - 其餘的將被刪除。將非常大的製表符分隔的文件導入到MySQL中沒有首先創建表
我想將它導入到MySQL中,但它是一次性的(可能是2或3次關閉)任務,我不能爲LOAD DATA INFILE
命令創建空表而煩心。
實現此目的的最低努力方法是什麼?可以LOAD DATA INFILE
與VARCHAR
/TEXT
列或類似的動態創建表嗎?
我有一個非常大的製表符分隔文件。它大約有500列,可能還有一百萬條記錄。它是文本,日期和數字的組合。實際上我只對從裏面的幾列感興趣 - 其餘的將被刪除。將非常大的製表符分隔的文件導入到MySQL中沒有首先創建表
我想將它導入到MySQL中,但它是一次性的(可能是2或3次關閉)任務,我不能爲LOAD DATA INFILE
命令創建空表而煩心。
實現此目的的最低努力方法是什麼?可以LOAD DATA INFILE
與VARCHAR
/TEXT
列或類似的動態創建表嗎?
您必須創建一個表格。但是如果你只需要某些列,你可以選擇它們。
創建所需列的表格。你可以像這樣運行LOAD DATA
。
LOAD DATA LOCAL INFILE 'import.csv' INTO TABLE yournewtable
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
(@col1,@col2) set [email protected],[email protected];
@ col1,@ col2是來自CSV的變量。 Colum1,Column2表示您創建的表中的列。
LOAD DATA INFILE http://dev.mysql.com/doc/refman/5.5/en/load-data.html允許您指定僅導入某些列。
完美謝謝。爲了將來的參考,我需要第2列和第229列,我在括號內輸入以下內容:'(@ dummy,@ col2,@ dummy,@ dummy,... * 223,@ dummy,@ col229)'然後在最後的聲明中使用了「@ col2」和「@ col229」 – StackG 2015-03-13 11:26:50