Oracle merge 合并


@Transactional
public void mergeAll(){
dao.executeUpdateBySqlId("mergeTbDdbLogInfo", null);
dao.executeUpdateBySqlId("deletTbDdbLogTEMPAllInfo", null);
}



<update id="mergeTbDdbLogInfo">
<![CDATA[
merge into tb_ddb_log a
using (select * from tb_ddb_log_temp) b
on (a.paperNo= b.paperNo
and a.paperName= b.paperName
and a.username= b.username
and a.telephone= b.telephone
and a.address= b.address
and a.zipCode= b.zipCode
and a.delflag = 0
)
when not matched then
insert values
(b.row_id,
b.createtime,
b.updatetime,
b.createuserid,
b.updateuserid,
b.DEPTID,
b.DELFLAG,
b.paperNo,
b.paperName,
b.username,
b.telephone,
b.address,
b.zipCode)
]]>
</update>



<update id="mergeYjxxInfo">
<![CDATA[
merge into tb_yjxx a
using (select * from tb_yjxx_tmp) b
on (a.ghtm= b.ghtm)
when matched then
update set
a.DEPTID = b.deptid,
a.delflag = b.DELFLAG ,
a.LSH = b.LSH ,
a.PCH = b.PCH ,
a.TDJ = b.TDJ ,
a.TDJH=b.TDJH,
a.TDDH=b.TDDH,
a.TDFJ=b.TDFJ,
a.CLZT1 =b.CLZT1 ,
a.CLZT2 =b.CLZT2 ,
a.CLSJ=b.CLSJ,
a.CZY =b.CZY ,
a.QX=b.QX,
a.KHH =b.KHH ,
a.ZH=b.ZH,
a.DWMC=b.DWMC,
a.XM=b.XM,
a.DZ=b.DZ,
a.LXDH=b.LXDH,
a.JE=b.JE,
a.DZDBH =b.DZDBH ,
a.WDBZ=b.WDBZ
when not matched then
insert values(b.row_id,b.createtime,b.updatetime,b.createuserid,b.updateuserid)
]]>
</update>



<delete id="deletTbDdbLogTEMPAllInfo">
delete from TB_DDB_LOG_TEMP
</delete>



mysql
需要建一个唯一索引

CREATE UNIQUE INDEX TELEPHONE_INDEX ON JSHX_PROGRAM(TELEPHONE,BSS_TYPE);



replace into JSHX_PROGRAM
select * from JSHX_PROGRAM_TEMP where delflag = 0
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值