当前位置: 移动技术网 > IT编程>数据库>Oracle > Oracle merge into的优势

Oracle merge into的优势

2019年10月22日  | 移动技术网IT编程  | 我要评论

灰衣社,肖琇丹,zhanhua

简介

  oracle merge into命令,顾名思义就是“有则更新,无则插入”,这个也是merge into 命令的核心思想,在实际开发过程中,我们会经常遇到这种通过两表互相关联匹配更新其中一个表的某些字段的业务,有时还要处理不匹配的情况下的业务。这个时候你会发现随着表的数据量增加,类似这种业务场景的执行效率会比较慢,那是因为你需要多次重复查询两表中的数据,而通过merge into命令,只需要一次关联即可完成“有则更新,无则插入”的业务场景,大大提高语句的执行效率。

语法

1 merge into a表 using b表 on (a表.id = b表.id)
2 when matched then --匹配到,则更新a表数据
3 update set a.col=b.col
4 when not matched then --没匹配到,往a表插入数据
5  insert (a,b,c) values ('a','b','c');

解释:利用b表通过a表.id=b表.id的条件来匹配a表,当满足条件时,可以对a表进行更新,当不满足条件时,可以利用inert语句插入相关数据。

案例

merge into student.stuinfo_2018 a
using student.stuinfo b
on (a.stuid = b.stuid)
when matched then --匹配到往a更新数据
  update set a.age = b.age
when not matched then --没匹配到往a插入数据
  insert
    (a.stuid,
     a.stuname,
     a.sex,
     a.age,
     a.classno,
     a.stuaddress,
     a.grade,
     a.enroldate,
     a.idnumber)
  values
    (b.stuid,
     b.stuname,
     b.sex,
     b.age,
     b.classno,
     b.stuaddress,
     b.grade,
     b.enroldate,
     b.idnumber);

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网