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

来源:互联网 发布:婵真淘宝旗舰店 编辑:程序博客网 时间:2024/06/07 18:04

传统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 里面用到的条件字段不能作为更新字段

0 0
原创粉丝点击