Oracle中MERGE INTO的用法 |
發(fā)布時(shí)間: 2012/8/30 16:45:57 |
自從版本9i之后,對(duì)于“有則更新,無(wú)則插入”有了一個(gè)新的用法,不需要再執(zhí)行2次SQL了。
關(guān)鍵字、參數(shù) into 子句 using 子句 on 子句 when matched | not matched 1.合并表 各種情況下的
MERGE INTO T1 USING T1 ON( T1.user_id = T2.user_id ) WHEN MATCHED THEN UPDATE SET T1.user_nm = T2.user_nm WHEN NOT MATCHED THEN INSERT (user_id,user_nm) VALUES (T2.user_id,T2.user_nm)
根據(jù)外部傳進(jìn)來(lái)的參數(shù),如果存在的話,用給定的參數(shù)更新,如果不存在則插入
USER DUAL ON( T1.user_id = '001' ) WHEN MATCHED THEN UPDATE SET T1.user_nm = 'David Vi' WHEN NOT MATCHED THEN INSERT (user_id, user_nm) VALUES ('001','David Vi') 3.用JOIN表更新 對(duì)于第1,3應(yīng)用有個(gè)問(wèn)題,就是更新對(duì)象表和USING表(子表)是1:N的關(guān)系的話,無(wú)法更新。 本文出自:億恩科技【www.allwellnessguide.com】 服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] |