共计 717 个字符,预计需要花费 2 分钟才能阅读完成。
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);
正文完