Oracle中MERGE INTO的用法 |
发布时间: 2012/8/30 16:45:57 |
自从版本9i之后,对于“有则更新,无则插入”有了一个新的用法,不需要再执行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.enkj.com】 |