Java 如何跟踪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

我在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
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编码的有效临时文件
  • 应用程序将文件名和有关导入的一些其他元信息插入一个单独的表
    import\u info
    ,并检索其id(update\u id)
  • 然后,应用程序使用
    LOAD data infle
    查询从文件中加载数据,并将路径传递到该文件和
    update\u id
    attr1
    attr2
    attr3
    来自文件,
    update\u id
    来自查询的参数)

  • 在我的例子中,
    importdata
    表允许应用程序在导入数据后将重复的数据合并到其他表中。如果合并成功,我将从
    importdata
    表中删除导入的数据


不清楚问题是什么?如何在导入时合并重复项?或者,如何记录合并值实际从导入时的特定行合并的信息?不,我需要知道Book1(…n)是从哪个文件创建的。如何加载它们?使用加载数据填充?我可以用不同的方式加载,我也可以写。我需要详细阐述跟踪文件信息来源的通用原则。无论如何,谢谢你对我的问题感兴趣
LOAD DATA LOCAL INFILE %(file_path)s
INTO TABLE importdata
CHARACTER SET 'utf8'
(attr1, att2, att3, update_id)
SET update_id = %(update_id)s;