oracle中merge的使用

用法一:可以进行多表关联后的更新

SQL脚本:

merge into tbuser u using tborgan o on (u.organid = o.organid) when matched then update set u.remark=o.organname

SQL脚本的含义:

  tbuser表与tborgan表关联,用organ表中的organname字段更新tbuser表中的remark字段

 

用法二:检查记录是否存在,如果存在就更新,不存在就添加

SQL脚本:

merge into tbsysconfig s using dual on (s.id=184) when matched then update set s.keydescribe='184184' when not matched then insert(id,organid,keydescribe) values(184,1,'184')

SQL脚本的含义:

检查tbsysconfig表中是否有id=184的记录,如果有,就更新,如果没有,就新建一条新的记录。这种方式比if exists的效率要高很多

 

用法三:合并多表的记录

SQL脚本:

merge into tbuser u using tbuser2 u2 on (u.username=u2.username) when not matched then insert(userid,username) values(u2.userid,u2.username)

SQL脚本的含义:

检查tbuser2表的记录tbuser表是否有,tbuser2表中有tbuser表中没有的记录,插入到tbuser表中

posted @ 2010-06-14 22:22  魔豆  阅读(410)  评论(0编辑  收藏  举报