Java 如何跟踪MySQL中加载的源文件?
我在MySQL中加载文件。每个文件包含:Java 如何跟踪MySQL中加载的源文件?,java,mysql,file,key,unique,Java,Mysql,File,Key,Unique,我在MySQL中加载文件。每个文件包含: Date ShopNumber subject price quantity total e、 g.文件1: 01/01/2011 Mexico Book1 $10 2 $20 01/01/2011 Mexico Book2 $10 2 $20 01/01/2011 Mexico Book3 $10 2 $20 ............................... 文件2: 01/01/2011 Mexico Book4 $10 2 $20
Date ShopNumber subject price quantity total
e、 g.文件1:
01/01/2011 Mexico Book1 $10 2 $20
01/01/2011 Mexico Book2 $10 2 $20
01/01/2011 Mexico Book3 $10 2 $20
...............................
文件2:
01/01/2011 Mexico Book4 $10 2 $20
01/01/2011 Mexico Book1 $10 1 $10
...............................
在MySQL表中:
01/01/2011 Mexico Book1 $10 3 $30
01/01/2011 Mexico Book2 $10 2 $20
01/01/2011 Mexico Book3 $10 2 $20
01/01/2011 Mexico Book4 $10 2 $20
...............................
问题是:我必须跟踪源文件,我不能将源文件包含到表的唯一键中-我只需要保留总数。
复制品很少。是否可以添加另一个只保留重复项的表?谢谢。我的应用程序在功能上包括导入,下面是我解决将数据加载到MySQL和跟踪信息问题的方法
- 当用户上传文件时,应用程序将其重新格式化为标签分隔的uft8编码的有效临时文件
- 应用程序将文件名和有关导入的一些其他元信息插入一个单独的表
,并检索其id(update\u id)import\u info
- 然后,应用程序使用
查询从文件中加载数据,并将路径传递到该文件和LOAD data infle
(update\u id
,attr1
,attr2
来自文件,attr3
来自查询的参数)update\u id
- 在我的例子中,
表允许应用程序在导入数据后将重复的数据合并到其他表中。如果合并成功,我将从importdata
表中删除导入的数据importdata
LOAD DATA LOCAL INFILE %(file_path)s
INTO TABLE importdata
CHARACTER SET 'utf8'
(attr1, att2, att3, update_id)
SET update_id = %(update_id)s;