Oracle中merge into的使用(如果数据存在则更新,不存在则插入)

Oracle数据库及神通数据库实现数据数据有则更新或者跳过,没有则添加进数据 Oracle数据库及神通数据库实现数据数据有则更新或者跳过,没有则添加进数据库 SQL如下: merge into basis_file_type t1 USING (SELECT #{aaa} AS a from dual) t2 on (t1.BASIS_TYPE_NAME = t2.a ) when not matched then insert (id, BASIS_TYPE_NAME) VALUES (12312311222312001112121, ‘123123213211’) 阅读详情

Oracle中merge into的使用

我们操作数据库的时候,有时候会遇到insert或者Update这种需求。

如果数据库中存在数据就update,如果不存在就insert。

以前的时候,需要额外select查询一下,如果有数据就update,如果没有数据就insert。

而现在Orcale数据库都提供了 MERGE 方法来处理这种需求。

MERGE 命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据。

 

MERGE 语法:

MERGE INTO 表名 T1
USING (SELECT '传入的值' AS 主建(ID/字段),'传入的值' AS (字段) FROM dual) T2
ON ( T1.主键(ID)=T2.主键(ID))
WHEN MATCHED THEN
    UPDATE SET T1.字段= T2.字段
WHEN NOT MATCHED THEN 
    INSERT (ID(字段名/主键),字段名) VALUES(T2.主键(字段),T2.字段名);

 

案例:

MERGE INTO B_ZGYS_EXCELMODEL  T1
USING (SELECT '123' AS ID,'345' AS EXCELPATH FROM dual) T2
ON ( T1.ID=T2.ID)
WHEN MATCHED THEN
    UPDATE SET T1.EXCELPATH = T2.EXCELPATH
WHEN NOT MATCHED THEN 
    INSERT (ID,EXCELPATH) VALUES(T2.ID,T2.EXCELPATH);

 

说明:表名:B_ZGYS_EXCELMODEL  

          字段名:1.ID

                         2.EXCELPATH

【存储过程】Merge Into语句实现Insert/Update在Oracle中的应用   最近接到一个新的接口需求,开发一个保存数据的接口,需要完成如下功能:有一个表T,有两个字段a(主键),b,我们想在表T中做Insert/Update,如果存在,则更新T中b的,如果存在,则插入一条记录。   在Microsoft的SQL语法中,很简单的一句判断就可以了,SQL Server中的语法如下: if exists(select... 阅读详情

相关推荐

LangGraph实战:如何用循环机制优化你的LangChain Agent工作流

本文详细介绍了如何使用LangGraph的循环机制优化LangChain Agent工作流,解决传统AgentExecutor在强制工具调用、动态提示调整和多阶段循环中的局限性。通过状态机和显式状态图设计,LangGraph提供了更精准的流程控制能力,适用于复杂AI应用场景。

weixin_30316097的博客 466

Oracle存在更新update ,存在插入insert

今天开发碰到了一个很常见的问题,就是需要根据数据库中是否存在来insert或update,以前的做法是 1.查询记录是否存在 select count(1) from table_name where ****; 2.判断 如果>=1则update table_name 如果==0则insert table_name 新学习到的方法是使用MERGE INTO语法 MERGE INTO 表名 USING 表名/视图/子查询 ON 连接条件 – 当匹配得上连接条件时 WHEN MATCHED THEN 更

study_wx的博客 1万+

Oracle存在更新存在插入方案(MySQL)

ON DUPLICATE KEY UPDATE"语句实现类似Oracle的"存在更新存在插入"的操作。在MySQL数据库中,有时候我们需要根据特定条件更新存在的记录,如果存在符合条件的记录,则需要插入新的记录。本文将介绍如何在MySQL中实现类似Oracle的"存在更新存在插入"的操作。通过使用这种方法,我们可以有效地处理存在/存在记录的场景,并且减少了执行多个查询和判断的开销。这样,无论记录是否存在,我们都可以通过一条SQL语句实现"存在更新存在插入"的操作。

SmufHtml的博客 1520

Oracle用一条语句实现存在该行数据更新存在时新增。Orace中使用LEAD、LAG分析函数求某行数据的前后n行。

Oracle用一条语句实现存在该行数据更新存在时新增。Orace中使用LEAD、LAG分析函数求某行数据的前后n行。

头好重好重的博客 4844

merge into用法mysql_Oracle数据merge into使用存在更新存在插入

1、在实际应用场景中,我们会用到:如果这条数据在表中,就更新数据;如果存在这条数据,就插入这条数据。在oracle中,可以使用merge into实现,在mysql中可以使用ON DUPLICATE KEY UPDATE,这里只介绍oracle中的merge into实现方法,sql语法如下:merge into testtable t using dual on (t.id = '1')whe...

weixin_33736279的博客 791

oracle12c merge into,Oracle数据merge into使用存在更新存在插入

1、在实际应用场景中,我们会用到:如果这条数据在表中,就更新数据;如果存在这条数据,就插入这条数据。在oracle中,可以使用merge into实现,在mysql中可以使用ON DUPLICATE KEY UPDATE,这里只介绍oracle中的merge into实现方法,语法如下:merge into testtable t using dual on (t.id = '1')when n...

weixin_26833139的博客 449

java oralce merge_Oracle数据merge into使用存在更新存在插入

1、在实际应用场景中,我们会用到:如果这条数据在表中,就更新数据;如果存在这条数据,就插入这条数据。在oracle中,可以使用merge into实现,在mysql中可以使用ON DUPLICATE KEY UPDATE,这里只介绍oracle中的merge into实现方法,sql语法如下:merge into testtable t using dual on (t.id = '1')whe...

weixin_42131342的博客 237

Oracle数据merge into使用存在更新存在插入

1、在实际应用场景中,我们会用到:如果这条数据在表中,就更新数据;如果存在这条数据,就插入这条数据。    在oracle中,可以使用merge into实现,在mysql中可以使用ON DUPLICATE KEY UPDATE,这里只介绍oracle中的merge into实现方法,语法如下:merge into testtable t using dual on (t.id = '1') ...

jerrychern的博客 3448

oracle mybatis实现批量添加数据时如果数据存在更新,如果存在插入merge into 的用法)

判断需要插入数据是否存在,如果存在更新 <insert id="saveBatch" parameterType="java.util.List" > MERGE INTO 表名 T1 USING ( <foreach collection="list" item="item" index="index" separator="u...

奋斗的日子最甜美,在科技的海洋里,永无止境。 6468

oracle实现添加数据时如果数据存在更新,如果存在插入merge into 的用法)

merge into 的用法 对一张表,在同的条件下实现同的操作(update/insert),在 oracle 中可以用 merge into 语法: MERGE INTO table_name alias1 USING (table|view|sub_query) alias2 (join condition) WHEN MATCHED THEN UPDATE table_n...

奋斗的日子最甜美,在科技的海洋里,永无止境。 6024

Oracle数据存在更新存在插入Merge Into方法

MERGE INTO drawInfo a --操作表名称 USING ( SELECT '1' as Identi FROM drawInfo --可以加where条件 ) b --操作表的条件 ON (a.Identi= b.Identi) WHEN MATCHED THEN --匹配时作更新操作 UP...

TheGreyWolf的博客 757

ORACLE存在就修改 存在就新增(注意更新和新增语法同于常规语法)

MERGE into k_mingd_ncc_log t1 USING (select #{pkName} as pkName from dual) t2 ON (t1.pkName=t2.pkName) when matched then update set t1.code=#{code},t1.ResultMsg=#{ResultMsg}, t1.RequestBody=#{RequestBody},t1.lastTime

csh_on_route的博客 3675

Oraclemerge into 的用法

Oraclemerge into 的用法 merge into 的用法 对一张表,在同的条件下实现同的操作(update/insert),在 oracle 中可以用 merge into 语法: MERGE INTO table_name alias1 USING (table|view|sub_query) alias2 (join condition) WHEN MATCHED...

weixin_30438813的博客 609

ORACLE数据有则更新无则新增的SQL

手写SQL,有则更新,无则新增。

qq_45624450的博客 2024

Oracle实现数据存在插入数据存在更新(insert or update)

思路是写一个函数,先按条件查询数据,如果查询到数据更新,如果没有查询到数据插入: create or replace function fn_merge_index(statdate in date, cpid in varchar2,

jumtre的专栏 5万+

Oracle判断数据是否存在再执行插入

Oracle判断数据是否存执行插入

Zhaof_Notes 2816

oracle学习之 merge语句 有则更新 没有则插入

oracle merge语句

weixin_56746335的博客 2082

浅谈银行内部户治理

为避免该问题的发生,对内部户入账类交易,或内部户是可透支的账户(如系统间往来),可考虑通过异步方式更新账户余额(当然,根本上还是要考虑银行业务量的实际,异步消息接口很多时候没有同步接口方便),另外,在进行内部户余额更新时,可以通过定时的借贷方发生额轧差的方式,将多次的锁请求,简化为一次(当然,发生额明细本身在加工账户交易历史时,是能汇总的)。内部户在银行系统中,属于业务属性较少,实现相对简单,原理也很容易讲清的系统,但管中窥豹,越是基础的东西,越能看出一家银行业务、内控的专业程度。

银行信息系统架构详解 741

2026年最新整理100份各行业数据中台建设及规划方案合集(PPT+WORD).rar

2026年最新整理100份各行业数据中台建设及规划方案合集(PPT+WORD).rar

上一篇: Eclipse中javaEE项目在Tomcat上AddandRemove没有项目
下一篇: 查询是否为节假日
大能人powerman
博客等级 码龄16年 22粉丝 43原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值