ORACLE快速合并更新数据——MERGE INTO


传统update写法

update b_pharmacy_sku vs set vs.supply_price = (select t.supply_price from b_pharmacy_sku_bak t where t.id = vs.id) where 
exists(select 1 from b_pharmacy_sku_bak t where t.id = vs.id); 


MERGE INTO b_pharmacy_sku p1
USING b_pharmacy_sku_bak p2
ON (p1.id = p2.id)
WHEN MATCHED THEN
UPDATE
SET p1.supply_price = p2.supply_price;

亲测在数据量在30W条的情况下传统update写法耗时10分钟,使用merge耗时20秒。

--注意:ON 里面用到的条件字段不能作为更新字段

你可能感兴趣的:(ORACLE快速合并更新数据——MERGE INTO)