码迷,mamicode.com
首页 > 数据库 > 详细

Oracle 使用MERGE INTO 语句更新数据

时间:2016-12-25 18:05:30      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:view   写法   nbsp   功能   set   table   --   desc   复制表   

/*Merge into 详细介绍
MERGE语句是Oracle9i新增的语法,用来合并UPDATE和INSERT语句。
通过MERGE语句,根据一张表或子查询的连接条件对另外一张表进行查询,
连接条件匹配上的进行UPDATE,无法匹配的执行INSERT。
这个语法仅需要一次全表扫描就完成了全部工作,执行效率要高于INSERT+UPDATE。 
*/
/*语法:
MERGE [INTO [schema .] table [t_alias] 
USING [schema .] { table | view | subquery } [t_alias] 
ON ( condition ) 
WHEN MATCHED THEN merge_update_clause 
WHEN NOT MATCHED THEN merge_insert_clause;
*/

 

 1 MERGE INTO T_PRODUCT t
 2 USING T_PRODUCT_TEMP u 
 3 ON ( u.id=t.id)
 4 WHEN MATCHED THEN
 5     UPDATE  SET t.name = u.name,t.orderid = u.orderid,
 6      t.descr = u.descr
 7      --delete where u.id=1 
 8 WHEN NOT MATCHED THEN 
 9     INSERT (id, name, orderid, descr) VALUES(u.id, u.name,u.orderid, u.descr)
10 --WHEN NOT MATCHED BY u and t.id=u.id THEN
11   --Delete; 

新特性的功能,加快的复制表数据的性能,一次性的读取,可以快速把数据复制到目标表中,其中在update中还支持delete语句的写法

可过过滤些不需要更新的数据。速度还是很不错的。

Oracle 使用MERGE INTO 语句更新数据

标签:view   写法   nbsp   功能   set   table   --   desc   复制表   

原文地址:http://www.cnblogs.com/hjava/p/6219950.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!