into merge 主键重复_MERGE INTO语句避免重复插入

为了防止重复插入和重复更新,一般会在更新前进行读入,再进行更新,这个就会访问两次数据库,浪费资源和时间,而且因为是分两次读的数据库,可能在两次之间数据会发生变化。

使用MERGE INTO可以一次性判断应该更新还是插入,方法简单可靠。

以下是仅对一个表进行了的判断操作,MERGE INTO还可以判断操作多张表。

MERGE INTO WXAGENT A USING

(SELECT '"+agentcode+"' AS AGENTCODE,

'"+agentName+"' AS NAME, '"+agentComCode+"' AS COMCODE,

'"+agentComName+"' AS COMNAME

FROM DUAL )B ON (A.AGENTCODE=B.AGENTCODE)

WHEN MATCHED THEN UPDATE SET

A.NAME=B.NAME, A.COMCODE=B.COMCODE, A.COMNAME=B.COMNAME,

A.UPDATEDATE=SYSDATE, A.AGENTTOTAL=A.AGENTTOTAL+1

WHERE A.AGENTCODE=B.AGENTCODE

WHEN NOT MATCHED THEN INSERT

(A.AGENTCODE, A.NAME, A.COMCODE, A.COMNAME,

A.UPDATEDATE, A.AGENTTOTAL)VALUES(

B.AGENTCODE,B.NAME,B.COMCODE,B.COMNAME,SYSDATE,1)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值