哪位大哥指点下,小弟不胜感激!!!
比如说我现在有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下是否修改过什么。
比如说我现在有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下是否修改过什么。
-----------------------
直接通过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...)
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)