数据库中有表A和B
表A:
序号 名称 用法 比例1 比例2 版本号
1 A a 1 2 空
1 A B 1 2 空
2 B c 1 3 空
3 D d 1 4 空
表B存放的是比较的结果 表结构和表A一样并且表B里的数据默认为空(只会空一次)
比较逻辑1.:
1.如果表B里的数据为空,那么将表A里的数据全部插入到表B 并且自动生成一个标识(从1开始逐一递增 并且最大版本号+1),需要注意的是只有当序号不同,名称用法比例1比例2都完全一样才使用最大版本+1的方式
如图:
序号 名称 用法 比例1 比例2 版本号
1 A a 1 2 V0001
1 A B 1 2 V0001
2 B c 1 3 V0001
3 D d 1 4 V0001
2.如果表A里的数据在同一序号下,名称,用法,比例1,比例2完全一样那么将表B里的版本号回填给A
例如:
如果表B里已经存在与表A一样的数据那么 表B中的版本号就回填给表A结果如下
表B
序号 名称 用法 比例1 比例2 版本号
1 A a 1 2 空
1 A B 1 2 空
2 B c 1 3 空
3 D d 1 4 空
表B存放的是比较的结果 表结构和表A一样并且表B里的数据默认为空(只会空一次)
依次类推
提示:使用minus 逐一比较
你这个是要用数据库 实现 版本控制
A表 按照 group by [名称]
也就是说 按照 [名称]分组
如果你的 名称唯一的话
A 表 每组取版本号最大的 那个值
这是第一次过滤 你可以建立个视图VA 过滤 A表中 最新版本号的数据
第二部
VA 与 B join 一个 最新版本号的 表UB
VA 与 B join 一个 A 需要更新的 表UA
clear B 表 insert UB 到 B 表
UA 与 VA join 更新 到A 表