Oracle中MERGE INTO的用法 |
發(fā)布時間: 2012/8/30 16:45:57 |
自從版本9i之后,對于“有則更新,無則插入”有了一個新的用法,不需要再執(zhí)行2次SQL了。
關鍵字、參數 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)
根據外部傳進來的參數,如果存在的話,用給定的參數更新,如果不存在則插入
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表更新 對于第1,3應用有個問題,就是更新對象表和USING表(子表)是1:N的關系的話,無法更新。 本文出自:億恩科技【www.cmtents.com】 |