mysql - 我可以选择性地将数据从文本文件导入MySQL吗?

标签 mysql syntax import

我有一个 13gb .txt 文件,正在将其导入 MySQL,但我不想导入所有数据。例如,有许多列要么完全为空,要么包含不相关的信息 - 我只想导入我提供的 ~100/360 。如果我只为我想要的列创建标题,我可以从.txt文件中选择具体对应的数据进行上传吗?

通常我会使用文本编辑器删除多余的数据,但我没有可以处理这种大小的文件的文本编辑器。

最佳答案

您可以通过将输入文件中的特定列分配给用户定义的变量而不是数据库列来忽略它们。

例如,如果您有一个包含 4 列的 CSV 文件,并且只想将第 1 列和第 4 列导入到表中,您可以执行以下操作:

load data infile '/tmp/so42140337.csv'
into table so42140337
fields terminated by ','
lines terminated by '\n'
(c1,@dummy,@dummy,c2);

考虑到输入文件的大小,将其分块导入可能比在一个命令中导入整个文件更有效。您可以使用 pt-fifo-split为此的工具,遵循此 blog post 中的模式.

关于mysql - 我可以选择性地将数据从文本文件导入MySQL吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42140337/

相关文章:

java - java中的Double {{ }}语法问题

reactjs - 如何使用变量在 React 中导入组件或文件?

mysql - 使用终端将 SQL 数据库导入 mysql

java - 执行 MySQL 查询每次增加检索的列数

mysql - 使用 Sequel gem 检索多个数据集

java - 插入数据时JDBC连接错误

mysql - 查找关联模型中日期范围内的差距 | Rails 上的 Ruby

java - 机器人 : if(); do not caused any prohibition

css - css 变量名可以以数字开头吗?

Excel 将记事本数据中的多列解释为一列