mysql - 在不首先创建表的情况下将一个非常大的制表符分隔文件导入 MySQL

标签 mysql load-data-infile csv

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

我想将它导入 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 Colum1=@col1,Column2=@col2;

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

关于mysql - 在不首先创建表的情况下将一个非常大的制表符分隔文件导入 MySQL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29028972/

相关文章:

mysql工作台 "Lost connection to mysql server"

mysql - 清除 MYSQL 中 JSON(实际上是数组)字段的空值

MySQL 错误代码 1265 : what's wrong with my csv data?

python - 根据前缀将列加载到多个 DataFrame 中

perl - 在 Perl 中解析带双引号的制表符分隔文件

如果数据为 Null 或使用 CASE 语句为空,则 MySQl 查询 UPDATE

php - 无法使这个准备好的选择语句起作用

java - 解析 SELECT INTO OUTFILE 的输出

Mysql为表的现有列加载数据

python - 将 CSV 值转换为 numpy 数组,其中字段作为数组索引