将一个非常大的制表符分隔文件导入 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 中的列。
我有一个非常大的制表符分隔文件。它大约有 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 中的列。