在没有首先创建表的情况下将非常大的制表符分隔文件导入MySQL

时间:2015-03-13 09:39:17

标签: mysql load-data-infile tab-delimited

我有一个非常大的制表符分隔文件。它大约有500列,可能有100万条记录。它是文本,日期和数字的混合。我实际上只对内部的几列感兴趣 - 其余的将被删除。

我想将它导入MySQL,但它是一次性(可能是2或3次)任务,我真的不能为LOAD DATA INFILE命令创建一个空表。 / p>

实现这一目标的最省力的方法是什么?是LOAD DATA INFILE可以使用VARCHAR / TEXT列或类似内容即时创建表格吗?

2 个答案:

答案 0 :(得分:1)

您必须创建一个表。但如果您只需要某些列,则可以选择它们。

创建所需列的表格。

您可以像这样运行LOAD DATA

LOAD DATA LOCAL INFILE 'import.csv' INTO TABLE yournewtable
FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'  
(@col1,@col2) set Colum1=@col1,Column2=@col2;

@ col1,@ col2是CSV中的变量。 Colum1,Column2表示您创建的表中的列。

答案 1 :(得分:0)

LOAD DATA INFILE http://dev.mysql.com/doc/refman/5.5/en/load-data.html允许您指定仅导入某些列。