本文来源于:
http://www.cnblogs.com/changhai-xuri/archive/2006/11/05/550805.html
Oracle9i引入了一个新的SQL语句,使用本语句可以在一条语句中连接两个表。
以前要使用UPDATE去更新两个表中都存在的记录,或者用INSERT添加两个合并表中不存在的记录,必须写两个SQL语句,
而现在这两种操作都只要一条SQL MERGE语句就可以实现。
create table inventory (part_nointeger integer,part_count integer);
insert into inventory values(1,5);
insert into inventory values(3,6);
create table shipment (part_nointeger integer,part_count integer);
insert into shipment values(1,2);
insert into shipment values(2,2);
MERGE INTO inventory
USING shipment
ON (inventory.part_nointeger=shipment.part_nointeger)
WHEN MATCHED THEN
UPDATE SET inventory.part_count=inventory.part_count+shipment.part_count --注意如果这里前面的part_count字段不指明表名,默认为shipment字段,结果会为4
WHEN NOT MATCHED THEN
INSERT VALUES (shipment.part_nointeger,shipment.part_count);
commit;
select * from inventory;
truncate table inventory;
/**//*
PART_NO PART_COUNT
---------- ----------
1 7
3 6
2 2
执行的结果是shipment数据已经被合并到inventory中,所以与inventory中某些东西相匹配的shipment都会被添加到count中,
而没有得到的匹配的就不会添加到inventory中。
在MERGE语句中必须指定一个WHEN MATCHED和一个WHEN NOT MATHCED语句。
如果除这两种情况之外还有别的情况,你可能就需要使用一个常规的INSERT或者UPDATE语句。
另外一点是MERGE语句一次只能修改一行记录,而且不能修改在ON子句中引用的列。
MERGE语句的目标表(target table)(在本例中是inventory)必须是一个可以使用INSERT语句进行插入或者UPDATE语句进行更新的表或者视图。
源表(source table)(在本例中是shipment)可以是任何的查询表,比如说外部表或者管道化表函数。
分享到:
相关推荐
Oracle中merge into的使用 很有用的哦 学习一下
主要介绍了oracle中merge into用法及实例解析,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
关于Oracle中merge into的用法,比较实用哦
浅谈Oracle数据库中Merge Into的用法.pdf
oracle merge 用法详解
oracle使用 merge 更新或插入数据(总结)
在Oracle 9i R2版中引入的MERGE语句通常被称作“更新插入”(upsert),因为使用MERGE可以在同一个步骤中更新(update)并插入(insert)数据行。。。。。。
oracle merge into的使用,开发必备的。
oracle Merge 函数
oracle同一个表中使用merge
MERGE语句是SQL语句的一种。在SQL Server、Oracle数据库中可用,MySQL、PostgreSQL中不可用。MERGE是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。通过MERGE语句,根据...oracle中 merge: 从oracle 9i开始支持
oracle使用 merge 更新或插入数据(总结@新
在任何数据库中发生死锁都是不愉快的,即使是在一个特殊的情况下发生也是如此,它们会减小应用程序的接受程度(ACCEPTANCE),因此避免并正确解释死锁是非常重要的。
主要介绍了在MySQL中实现插入或更新操作(类似Oracle的merge语句)的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
关于数据库oracle merge RGE INTO newmergetest m using ...
merge 详解 及实例 优点: — 避免了分开更新 — 提高性能并易于使用 — 在数据仓库应用中十分有用 — 使用merge比传统的先判断再选择插入或更新快很多
通过这个MERGE你能够在一个SQL语句中对一个表同时执行INSERT和UPDATE操作. 本博客介绍一下Oracle merge合并函数,业务场景:新增数据的时候要先查询数据库是否已经有改数据,有数据就更新数据,没数据才新增数据,这...