`

Merge into 存在就更新数据,不存在就插入数据。

阅读更多

 

MERGE INTO A
USING B
ON ( A.tiaoma=B.tiaoma )-- A表和B表进行条件关联
WHEN MATCHED THEN --如果存在则执行更新操作
    UPDATE SET A.num= B.num
WHEN NOT MATCHED THEN --如果不存在则执行插入操作。
    INSERT(num)  VALUES(B.num);

 

 

 

注意:B表内数据不能有重复的数据。

否则将出现 ORA-30926: 无法在源表中获得一组稳定的行错误。

merge into的内部处理是将 A表 的每一条记录和B表 的每一条记录对比匹配,匹配到符合条件的记录就会进行修改,匹配不到的话就会insert。如果A表 的匹配列中有重复值的话,等到第二次重复的列值匹配的时候,就会将第一次的update后的值再一次update,就是说合并后的B中会丢失在A中的记录!!!如果记录丢失的话,两表合并的意义何在?!!因此我们使用merge into要注意:源表匹配列中不能有重复值,否则无法匹配(报错!     )。  

分享到:
评论

相关推荐

    Kettle 合并记录和Merge Join组件实现数据增量迁移(数据同步比插入更新快

    NULL 博文链接:https://forlan.iteye.com/blog/2245814

    DB2 MERGE INTO语句的使用

    DB2中的Merge语句可以将一个表中的数据合并到另一个表中,在合并的同时可以根据条件进行插入、删除、更新等操作,功能非常强大。

    Oracle MERGE INTO的用法示例介绍

    很多时候我们会出现如下情境,如果一条数据在表中已经存在,对其做update,如果不存在,将新的数据插入.如果不使用Oracle提供的merge语法的话,可能先要上数据库select查询一下看是否存在,然后决定怎么操作,这样的话需要...

    oracle中merge into用法及实例解析

    作用:判断B表和A表是否满足ON中条件,如果满足则用B表去更新A表,如果不满足,则将B表数据插入A表但是有很多可选项,如下: 1.正常模式 2.只update或者只insert 3.带条件的update或带条件的insert 4.

    oracle merge

    merge 详解 及实例 优点:  — 避免了分开更新  — 提高性能并易于使用  — 在数据仓库应用中十分有用  — 使用merge比传统的先判断再选择插入或更新快很多

    达梦数据库sql语言使用手册

    达梦数据库sql语言手册,达梦数据库是国产数据库里最好使用的,可以跟oracle数据无缝替换的

    merge_row_count:一个简单的实用程序,允许对由 Oracle 中的合并操作插入更新删除的行进行计数

    一个简单的实用程序 PL/SQL 包,允许对 Oracle 中的合并操作插入/更新/删除的行进行计数。 包的需要 Oracle不提供获取行数的功能。 插入 更新 已删除 使用 MERGE 操作完成所有操作时。 这个简单的实用程序是为了...

    merge用法详解(实例详解)

    使用一条语句从一个或者多个数据源中完成对表的更新和插入数据,即某一表数据变化时另一个表数据也要发生变化,我们可以通过此语句来实现,旧数据更新,新数据则新增

    在IDEA中通过MyBatis框架访问达梦数据库

    通过例子,介绍通过MyBatis访问达梦数据库,及各种关联查询,包括一对一、一对多、及多对多的关联关系的持久化类、Mapper、接口和测试。

    Microsoft SQL Server 2008技术内幕:T-SQL查询(第二卷)

    10.1 插入数据 10.1.1 增强的VALUES子句 10.1.2 SELECT INTO 10.1.3 BULK行集提供程序 10.1.4 按最小方式记录日志的操作  10.1.5 INSERT EXEC 10.1.6 序列机制45 10.2 删除数据 10.2.1 TRUNCATE与DELETE ...

    SQL培训第一期

    2.1.3.3 创建相同的表结构不插入数据 create tab_new as select * from tab_old where rownum=0; 2.1.4 伪列伪表 2.1.4.1 伪列 伪列不是表的真实列,但是你可以象使用真实列一样使用伪列,常用伪列:rowid行的绝对...

    SQLServer2008技术内幕T-SQL查询包含源代码及附录A

    10.1 插入数据425 10.1.1 增强的VALUES子句425 10.1.2 SELECT INTO426 10.1.3 BULK行集提供程序428 10.1.4 按最小方式记录日志的操作430 10.1.5 INSERT EXEC447 10.1.6 序列机制450 10.2 删除数据454 10.2.1 ...

    Microsoft+SQL+Server+2008技术内幕:T-SQL查询_源代码及附录 中文版

    10.1 插入数据425 10.1.1 增强的VALUES子句425 10.1.2 SELECT INTO426 10.1.3 BULK行集提供程序428 10.1.4 按最小方式记录日志的操作430 10.1.5 INSERT EXEC447 10.1.6 序列机制450 10.2 删除数据454 10.2.1...

    Oracle事例

    字符串字段中含有\"\'\",如果用来组合sql语句,会造成语句不准确。 比如:replace(f1,\'\'\'\',\'\') <2>.字符串字段中含有\"\\t \\n\",如果用来在c或者c++程序中输出到文件,格式无法保证。 比如:replace(f2,...

    达梦数据库用户手册基础学习版.rar

    MERGE INTO 语句 ......................................... 241 5.5 伪列的使用 .............................................. 244 5.5.1 ROWID ............................................ 244 ...

    计算机应用技术(实用手册)

    列表中存在PRIMARY MASTER 第一组IDE主设备;PRIMARY SLAVE 第一组IDE从设备;SECONDARY MASTER 第二组IDE主设备;SECONDARY SLAVE 第二组IDE从设备。这里的IDE设备包括了IDE硬盘和IDE光驱,第一、第二组设备是指...

    各种排序 冒泡 快速 堆 希尔 基数等九种

    // One order divides into two Quick_Sort(L,low,pivotloc-1); Quick_Sort(L,pivotloc+1,high); } } int Partition ( SqList &L,int low,int high ) { // 对L.r[low]——L.r[high] 子序列进行一趟快速排序...

Global site tag (gtag.js) - Google Analytics