各位大侠好,小弟现在需要做一个触发器,当表A里面有数据更新的时候,就将更新的数据备份到表B中,A B两张表的结构完全一样,请大侠指点下如何判断比较有效率:
A
column PrimaryKey Type Null
ReelID No Varchar Yes
McID Yes number
Station Yes number
Slot Yes number
SubSlot Yes number
PickListID Yes Varchar
ReelCounter Yes number
CompName No varchar Yes
Timestamp No Date Yes我是想在更新的时候判断新插入的数据的主键在B表中存在与否,然后决定是否插入,但是如果B表数据越来越多,这个效率不高,所以想请大家给个好点的思路,谢谢
A
column PrimaryKey Type Null
ReelID No Varchar Yes
McID Yes number
Station Yes number
Slot Yes number
SubSlot Yes number
PickListID Yes Varchar
ReelCounter Yes number
CompName No varchar Yes
Timestamp No Date Yes我是想在更新的时候判断新插入的数据的主键在B表中存在与否,然后决定是否插入,但是如果B表数据越来越多,这个效率不高,所以想请大家给个好点的思路,谢谢
或者手工使用merge语句定时同步
那么下次该记录再次被更新,此时,相同主键的记录在B表里已经存在,难道你不记录这次更新了?
create trigger upd_Bafter insert or update or delete
on A
begin
merge into b using(:new.ReelID,:new.McID,:new.Station,:new.Slot,:new.SubSlot,:new.PickListID,:new.ReelCounter ,:new.CompName,:new.Timestamp) on (:new.McID=b.McID,:new.Station=b.Station,:new.Slot=b.Slot,:new.SubSlot=b.SubSlot,:new.PickListID=b.PickListID,:new.ReelCounter =b.ReelCounter)
when matched then update .....
when not matched then insert
....