`

Oracle中Merge Into 代替Insert/Update的应用

 
阅读更多
在进行SQL语句编写时,我们经常会遇到大量的同时进行Insert/Update的语句 ,也就是说当存在记录时,就更新(Update),不存在数据时,就插入(Insert)。Merge的语法如下:

MERGE INTO [your table-name] [rename your table here]  
USING ( [write your query here] )[rename your query-sql and using just like a table]  
ON ([conditional expression here] AND [...]...)  
WHEN MATHED THEN [here you can execute some update sql or something else ]  
WHEN NOT MATHED THEN [execute something else here ! ] 


在一个同时存在Insert和Update语法的Merge语句中,总共Insert/Update的记录数,就是Using语句中的记录数。
例:当T表中如果存在a='1001' 的记录的话,就把b的值设为2,否则就Insert一条a='100',b=2的记录到T中:
MERGE INTO T T1
USING (SELECT '1001' AS a,2 AS b FROM dual) T2
ON ( T1.a=T2.a)
WHEN MATCHED THEN
  UPDATE SET T1.b = T2.b
WHEN NOT MATCHED THEN 
  INSERT (a,b) VALUES(T2.a,T2.b);
分享到:
评论

相关推荐

    oracle中merge into用法及实例解析

    merge into的形式: MERGE INTO [target-table] A USING [source-table sql] B ON([conditional expression] and [...]...) WHEN MATCHED THEN [UPDATE sql] WHEN NOT MATCHED THEN [INSERT sql] 作用:判断B表...

    Oracle MERGE INTO的用法示例介绍

    1)主要功能 提供有条件地更新和插入数据到数据库表中 如果该行存在,执行一个UPDATE操作,如果是一个新行,执行INSERT操作 — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 2)MERGE语句的...

    Oracle merge合并更新函数实例详解

    通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这...

    MySQL中实现插入或更新操作(类似Oracle的merge语句)

    如果需要在MySQL中实现记录不存在则insert,不存在则update操作。可以使用以下语句: 更新一个字段: INSERT INTO tbl (columnA,columnB,columnC) VALUES (1,2,3) ON DUPLICATE KEY UPDATE columnA=IF(columnB>0,...

    Oracle事例

    insert into TABLENAME@DBLNKNAME (a,b) values (va,vb); update TABLENAME@DBLNKNAME set a=\'this\'; delete from TABLENAME@DBLNKNAME; 怎样执行远程的内嵌过程 begin otherdbpro@to_html(参数); end; ...

    Oracle10g 知识总结

    数据操作语句(DML):insert into 、delete、update、merge (3).数据定义语句(DDL):create 、alter、drop、truncate (4).数据控制语句(DCL):grant、revoke (5).事物控制语句(TCL):commit、rollback、savepoint

    jsqlformatter:Java SQL格式化程序,美化程序和漂亮打印机

    jsqlformatter Java SQL格式化程序,美化程序和漂亮打印机特征基于 支持复杂的SELECT,INSERT INTO,MERGE,UPDATE语句简单用法String formattedSql = JSqlFormatter . format( " SELECT * FROM table1 " ) RDBMS不...

    SQL培训第一期

    用于操作关系型数据库对象内部的数据,insert、update、delete。 1.2.3 数据定义语言(DDL) 用来建立及定义数据表、字段以及索引等数据库结构,create、alter、drop 。 1.2.4 数据控制语言(DCL) 用于控制对数据库...

    SQL基础编写与调试优化

    ORACLE SQL语句编写与调优 ORACLE交流群48949977 内容简介 第一部分 SQL基础 SQL简介 发展历史 SQL语句分类(DDL、DML、DQL、DCL) 内容简介 第五部分 SQL优化 优化器 SQL语句执行过程 SQL优化术语 第一...

    MySQL and JSON A Practical Programming Guide 2018

    Written by a MySQL Community Manager for Oracle, MySQL and JSON: A Practical Programming Guide shows how to quickly get started using JSON with MySQL and clearly explains the latest tools and ...

Global site tag (gtag.js) - Google Analytics