java - MySQL - 使用 INFILE 时将变量插入列
问题描述
我正在用 Java 编写一个应用程序,我需要将文本文件插入到 MySQL 表中。这些文件可能有数十 GB。出于性能原因,我决定使用 LOCAL INFILE 来执行此操作。我遇到的问题是我还需要同时插入一个基于变量的值。
假设下表。
foo_string | bar_int
假设以下数据
a
bb
cccc
我首先从另一个表中获取一个值的 id 并将其存储在本地 int 中。然后我去执行以下查询以插入来自 myvalues.txt 的值
statement.executeUpdate( "LOAD DATA LOCAL INFILE 'myvalues.txt' INTO TABLE mytable FIELDS TERMINATED BY '' LINES TERMINATED BY '\\n'");
上述工作按预期工作,但我还想同时在第二个(bar_int)列中插入一个值。做这个的最好方式是什么?
解决方案
您可以使用列列表,然后使用SET
子句:
LOAD DATA LOCAL INFILE 'myvalues.txt'
INTO TABLE mytable
FIELDS TERMINATED BY '' LINES TERMINATED BY '\\n'
(foo_string)
SET bar_int = 1;
这会将文件中的一列读入列foo_string
中。它设置bar_int
为特定值。
推荐阅读
- angular - Angular:想要根据在另一个下拉列表中选择的值更新下拉列表
- java - Java中字符串数组的复制构造函数
- node.js - 成功部署后无法从 Heroku 应用程序从 MongoDB Atlas 加载数据
- java - 如何将数据插入表中,使得一个值来自另一个表,另一个值来自表单
- c++ - 我试图将光标平滑地移动到随机点
- laravel - 创建具有特征 HasApiTokens 的用户失败
- java - 有没有办法将 TCPDump 输出到文件,并用 Java 过滤它,每 5 秒用新数据覆盖文件?
- javascript - 检查用户是否登录 PrivateRoute 组件 React
- python - 展平字典
进入一个综合列表 - scala - 查找列表中包含对象的选项值的平均值