@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
分享到:
相关推荐
Oracle的MERGE语句是一种强大的数据操作工具,它在Oracle9i版本中被引入,用于合并UPDATE和INSERT操作。在处理需要根据特定条件更新或插入数据的场景时,MERGE语句提供了高效的解决方案,尤其适合那些需要在单个SQL...
接下来,使用`MERGE INTO`语句将`NEWPRODUCTS`中的数据合并到`PRODUCTS`中。当`PRODUCT_ID`在两个表中都存在时,`PRODUCTS`中的记录将被更新为`NEWPRODUCTS`中的信息;当`PRODUCT_ID`仅存在于`NEWPRODUCTS`中时,会...
在Oracle数据库中,`MERGE INTO`语句是一种强大的数据操作工具,它允许你在一个步骤中执行更新(UPDATE)和插入(INSERT)操作,从而提高了数据处理的效率和灵活性。这个命令尤其适用于需要同步两个表的数据时,比如...
此外,还可以通过合并多个SQL语句或者调整SQL语句的执行顺序来避免死锁。 ##### 4.2 调整数据库配置 合理设置数据库配置参数,如`INITTRAN`和`MAXTRANSPCTFREE`等,以减少事务之间的冲突。可以通过调整这些参数来...
在 Oracle 数据库中,Merge Into 语句是一种非常有用的功能,它主要用来合并 update 和 insert 语句,即用一个表中的数据来修 改或插入到另一个表中。Merge Into 语句的主要原则是“有则更新,无则插入”。 Merge ...
下面将详细阐述如何使用这两个工具以及如何通过`MERGE INTO`语句进行数据合并更新。 1. SQLULDR2导出数据: SQLULDR2是Oracle提供的一款数据导出工具,它能够快速地将数据库中的数据导出到文本文件或其他格式的...
一个简单的实用程序 PL/SQL 包,允许对 Oracle 中的合并操作插入/更新/删除的行进行计数。 包的需要 Oracle不提供获取行数的功能。 插入 更新 已删除 使用 MERGE 操作完成所有操作时。 这个简单的实用程序是为了...
在支持MERGE的数据库系统(如Oracle、SQL Server、PostgreSQL等)中,这个语句能有效地处理复杂的合并场景。然而,并非所有数据库都原生支持MERGE,例如MySQL的标准版本就未包含此功能。在这种情况下,我们需要寻找...
使用merge语句可以避免编写复杂的逻辑判断,并且可以提高处理效率,特别适用于需要根据条件合并多表数据的场景。 4. 快速游标更新法: 当更新操作涉及到多表关联且逻辑较为复杂时,可以使用PL/SQL的游标(cursor...
例如,添加分区可以使用 alter table add partition 语句,删除分区可以使用 alter table drop partition 语句,Truncate 分区可以使用 alter table truncate partition 语句,合并分区可以使用 alter table merge ...
根据不同的数据集和查询需求,Oracle提供了多种表连接方式,包括NESTED LOOP、HASH JOIN和SORT MERGE JOIN等。 NESTED LOOP NESTED LOOP是一种基本的表连接方式,适用于被连接的数据子集较小的情况。在nested loop...
MERGE是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据一张表(原数据表,source table)或子查询的连接条件对另外一张(目标表,target table)表进行查询,连接条件匹配上的进行UPDATE,...
JSON 合并补丁 JSON 合并补丁 JSON 合并补丁是一种标准格式,允许您通过发送更改而不是整个文档来更新 JSON 文档。 JSON Merge Patch 与 HTTP PATCH 动词(方法)和 REST 风格的编程配合得很好。 安装 安装当前版本...
3. **连接类型**:Oracle支持三种连接方式:排序合并连接(Sort Merge Join, SMJ)、哈希连接(Hash Join, HJ)和嵌套循环连接(Nested Loop Join, NL)。在两张表连接时,只有嵌套循环连接能够在内表的目标列上有效...
8. **merge into 用法.txt**:MERGE INTO是Oracle中的一个高级DML操作,用于合并数据源,实现更新或插入,根据特定条件决定是更新已有记录还是插入新记录。 通过学习这些资料,不仅可以掌握Oracle的基础操作,还能...
Oracle 提供了多种表连接方式,包括 Hash Join、Nested Loop 和 Sort Merge。每种方式都有其特点和工作原理: * Nested Loop:使用条件:任何连接;优点:当有高选择性索引或进行限制性搜索时效率比较高,能够快速...
本文将详细介绍三种主要的表连接方式:嵌套循环连接(Nested Loop Join,简称NL Join)、排序合并连接(Sort Merge Join,简称SM Join)以及散列连接(Hash Join)。我们将探讨它们的特点、优势与劣势,以便于在实际...
1.9 MERGE语句 22 1.10 小结 24 第2章 SQL执行 25 2.1 Oracle架构基础 25 2.2 SGA-共享池 27 2.3 库高速缓存 28 2.4 完全相同的语句 29 2.5 SGA-缓冲区缓存 32 2.6 查询转换 35 2.7 视图合并 36 2.8 子查询解嵌套 ...