我想实现的操作是这样的:
有两个表,A和B,我想将A表中的数据加载到B表中,如果B表中存在主键和A表相同的,则将A表中的记录更新到B表中,如果没有相同主键的记录,则插入到B表中,注意要尽可能的使效率高,因为数据量非常大,可能有百万条记录,怎么做,用exists吗?我不确定,请高手指点
有两个表,A和B,我想将A表中的数据加载到B表中,如果B表中存在主键和A表相同的,则将A表中的记录更新到B表中,如果没有相同主键的记录,则插入到B表中,注意要尽可能的使效率高,因为数据量非常大,可能有百万条记录,怎么做,用exists吗?我不确定,请高手指点
USING(要更新的内容)
ON (主键比较的条件)
WHEN MATHCHED THEN UPDATE(...)
WHEN NOT MATHCHED THEN INSERT(...)例:
MERGE INTO B
USING (SELECT FIELD1,FIELD2 FROM A) T
ON (T.FIELD1 = B.FIELD1)
WHEN MATHCHED THEN UPDATE (B.FIELD2 = T.FIELD2)
WHEN NOT MATHCHED THEN INSERT (B.FILED1,B.FIELD2) VALUES(T.FIELD1,T.FIELD2);