将一个非常大的制表符分隔文件导入 MySQL 而无需先创建 table

Importing a very large tab delimited file into MySQL WITHOUT first creating a table

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

我想将它导入 MySQL,但这是一次性的(可能是 2 次或 3 次)任务,我真的懒得创建一个空的 table对于 LOAD DATA INFILE 命令。

实现此目标最省力的方法是什么? LOAD DATA INFILE 可以用 VARCHAR/TEXT 列或类似的列即时创建 table 吗?

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

您必须创建一个 table。但是,如果您只需要某些列,则可以 select 它们。

创建一个 table 所需的列。

你可以这样 运行 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 表示您创建的 table 中的列。