【应用场景:】要实现比较两个表的某个列的数据的差异,然后根据比较结果的是否相同(WHEN MATCHED表示匹配上)进行相应的操作,采用Oracle系统的MERGE语句可以实现。
【语句实例】
MERGE INTO products p
USING newproducts np ON (
p.product_id = np.product_id
)WHEN MATCHED THEN
UPDATE SET p.product_name= p.product_name, p.category = np.category
WHEN NOT MATCHED THEN
INSERT VALUES (np.product_name, np.product_name, np.category ) ;
【语句结构:】
MERGE INTO 要操作的目的表
USING 指定的表连接 ON(条件)
WHEN MATCHED THEN UPDATE SET 条件匹配时(目的表中有数据了)更新
WHEN NOT MATCHED THEN INSERT 条件不匹配时(目的表中无数据)插入
我最常用的是
MERGE INTO products p
USING (select column1,coumn2 from newproducts ) np