关于oracle:oracle函数merge-into

0、前言

​ 咱们在业务中可能碰到这种状况:如果用户在数据库中不存在,那么就进行插入;否则就进行批改。

​ 按咱们平时的做法可能是在业务层先查问用户存不存在,如果存在,那么就更新。

​ 那咱们上面讲一种在oracle数据库层面的条件判断–merge into。

<br/><br/>

1、语法

MERGE INTO 表A 
USING 与表A产生关联字段值
ON 进行和表A的关联 
WHEN MATCHED THEN        --如果匹配,做更新操作
    update set.... 
WHEN NOT MATCHED THEN   --如果不匹配,做增加操作
    insert ....

<br/><br/>

2、应用

2.1 测试增加

留神update金额insert后不必加表名

merge into emp10 e
using (select '1111' as empno, 'heihei' as ename from dual) s
on (e.empno = s.empno)
when matched then
     update set ename = s.ename where empno = s.empno
when not matched then
     insert (empno,ename) values(s.empno,s.ename);

<br/><br/>

2.2 测试批改

merge into emp10 e
using (select '1111' as empno, 'xixixi' as ename from dual) s
on (e.empno = s.empno)
when matched then
     update set ename = s.ename where empno = s.empno
when not matched then
     insert (empno,ename) values(s.empno,s.ename);

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理