我正在尝试通过从 Java 进程调用 MySQL 的 LOAD DATA INFILE 将数据从文本文件加载到 MySQL 表中。该文件可以包含当前日期和前几天的一些数据。该表还可以包含以前日期的数据。问题是文件中先前日期的某些列可能已更改。但我不想更新所有这些列,而只想更新某些列的最新值。
示例,表格
+----+-------------+------+------+------+ | 编号 | 报告日期 | val1 | val2 | val3 | +----+-------------+------+------+------+ | 1 | 2012-12-01 | 10 | 1 | 1 | | 2 | 2012-12-02 | 20 | 2 | 2 | | 3 | 2012-12-03 | 30 | 3 | 3 | +----+-------------+------+------+------+
输入文件中的数据:
1|2012-12-01|10|1|1 2|2012-12-02|40|4|4 3|2012-12-03|40|4|4 4|2012-12-04|40|4|4 5|2012-12-05|50|5|5
加载后的表格应如下所示
mysql> 从 load_infile_tests 中选择 *; +----+-------------+------+------+------+ | 编号 | 报告日期 | val1 | val2 | val3 | +----+-------------+------+------+------+ | 1 | 2012-12-01 | 10 | 1 | 1 | | 2 | 2012-12-02 | 40 | 4 | 2 | | 3 | 2012-12-03 | 40 | 4 | 3 | | 4 | 2012-12-04 | 40 | 4 | 4 | | 5 | 2012-12-05 | 50 | 5 | 5 | +----+-------------+------+------+------+ 5 行一组(0.00 秒)
请注意,列 val3 值不会更新。我也需要对大文件执行此操作,有些文件可能大于 300Megs 或更多,因此它需要是一个可扩展的解决方案。
谢谢,阿尼鲁达