本人正在做一个数据传输的小程序,用于两表之间的数据批量更新。
想与大家讨论一下提高效率的方法。
环境:
表A、表B
表A.主键A、表B.主键A
表A.传输标志
方法一:
1、找到表A.传输标志表示为要传输的所有记录X
2、查所记录X1在在表B中是否存在
3、如果存在就update
4、如果不存在就insert
5、更改记录X的传输标志
这样的方法会浪费很多时间在"查所记录X1在在表B中是否存在"的上面。
当然在insert、update时要用到ADOConnection的BeginTrans、CommitTrans、RollbackTrans。
这是一个抛砖引玉的方法,望各大高手多来发表高见!
想与大家讨论一下提高效率的方法。
环境:
表A、表B
表A.主键A、表B.主键A
表A.传输标志
方法一:
1、找到表A.传输标志表示为要传输的所有记录X
2、查所记录X1在在表B中是否存在
3、如果存在就update
4、如果不存在就insert
5、更改记录X的传输标志
这样的方法会浪费很多时间在"查所记录X1在在表B中是否存在"的上面。
当然在insert、update时要用到ADOConnection的BeginTrans、CommitTrans、RollbackTrans。
这是一个抛砖引玉的方法,望各大高手多来发表高见!
insert into B select * from A where X not exists(select X from B)
如果是不存在就更新的话,那只能满足insert的情况,如果纪录update过呢?
如果a b 表的数据不一样怎么办?
。
begin
end
else
begin
end