哪位大哥指点下,小弟不胜感激!!!
比如说我现在有A 和B两个备份文档,想知道B相当于A做过了哪些改动,删过什么,增加过什么。A.txt            B.txt
ID              ID
1                2
2                3
3                4
6                5
7                9
8                10
10              11
11              12
这只是我想出来的例子,实际情况是用JDBC对比2个同样结构的数据库表的内容,删过什么,增加过什么,在相同ID下是否修改过什么。 

解决方案 »

  1.   

    “删过什么,增加过什么”
    -----------------------
    直接通过SQL关联主键ID来区分那些记录。
    “在相同ID下是否修改过什么。”
    -----------------------
    如果表字段不多的情况下,可以通过SQL来处理,如:select * from tb_a a,tb_b b where a.id=b.id and (a.field1<>b.field1 or a.field2<>b.field2...)
      

  2.   


    mysql> select * from a;
    +------+
    | id   |
    +------+
    |    1 |
    |    2 |
    |    3 |
    |    6 |
    |    7 |
    |    8 |
    |   10 |
    |   11 |
    +------+
    8 rows in set (0.00 sec)mysql> select * from b;
    +------+
    | id   |
    +------+
    |    2 |
    |    3 |
    |    4 |
    |    5 |
    |    9 |
    |   10 |
    |   11 |
    |   12 |
    +------+
    8 rows in set (0.00 sec)select concat('add',id) from b where id not in (select id from a)
    union all
    select concat('del',id) from a where id not in (select id from b);+------------------+
    | concat('add',id) |
    +------------------+
    | add4             |
    | add5             |
    | add9             |
    | add12            |
    | del1             |
    | del6             |
    | del7             |
    | del8             |
    +------------------+
    8 rows in set (0.06 sec)