我是靠谱客的博主 鳗鱼自行车,最近开发中收集的这篇文章主要介绍oracle 批量添加数据当遇到条件字段相同时则更新本组信息业务需求一、merge into是什么?二、使用步骤总结,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 业务需求
- 一、merge into是什么?
- 二、使用步骤
- 代码解释
- 总结
业务需求
某表的表结构不动的情况下,接入少量数据并当遇相同字段值时更新本组信息,否则插入。
提示:以下是本篇文章正文内容,下面案例可供参考
一、merge into是什么?
MERGE关键字是一个神奇的DML关键字,它是Oracle9i新增的语法,它能将INSERT,UPDATE,DELETE等操作并为一句,根据与源表(可为实际表,也可为多组对象数据)联接的结果,对目标表执行插入、更新或删除操作。
二、使用步骤
代码如下(示例2.1):
merge into demo u using(
<foreach collection="list" item="item" index="index"
separator="union">
select #{item.id} as id,#{item.username} as username,#{item.age} as age from dual
</foreach>
)t
on (u.id=t.id and u.age=t.age)
when matched then
update set u.username=t.username
when not matched then
insert (u.id,u.username,u.age) values (t.id,t.username,t.age)
代码解释
解释如下:dual : 是oracle的虚拟表
using(
<foreach collection="list" item="item" index="index"
separator="union">
select #{item.id} as id,#{item.username} as username,#{item.age} as age from dual
</foreach>
)t
using()
--使用的数据源
demo
--表名称;
u
--表别名;
on (u.id=t.id and u.age=t.age) -- 判断条件 数据源t的某一行与数据库表u是否满足
when matched then
update set u.username=t.username
-- 满足条件则执行修改此数据、注意“ on内如果有条件了则修改时不
能修改条件字段”
when not matched then
insert (u.id,u.username,u.age) values (t.id,t.username,t.age)
-- 不满足则执行此插入语句
注意:
update 与 insert 后不能 加表名
总结
简单的说就是,判断表中有没有符合on ( ) 条件中的数据,有了就更新,没有就插入。其中on()判断的联合条件要唯一。
最后
以上就是鳗鱼自行车为你收集整理的oracle 批量添加数据当遇到条件字段相同时则更新本组信息业务需求一、merge into是什么?二、使用步骤总结的全部内容,希望文章能够帮你解决oracle 批量添加数据当遇到条件字段相同时则更新本组信息业务需求一、merge into是什么?二、使用步骤总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复