加入收藏 | 设为首页 | 会员中心 | 我要投稿 辽源站长网 (https://www.0437zz.com/)- 云专线、云连接、智能数据、边缘计算、数据安全!
当前位置: 首页 > 站长百科 > 正文

Oracle merge into的优势

发布时间:2020-12-26 05:07:55 所属栏目:站长百科 来源:网络整理
导读:简介 Oracle merge into命令,顾名思义就是“有则更新,无则插入”,这个也是merge into 命令的核心思想,在实际开发过程中,我们会经常遇到这种通过两表互相关联匹配更新其中一个表的某些字段的业务,有时还要处理不匹配的情况下的业务。这个时候你会发现随

简介

  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);

(编辑:辽源站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读