Oracle中MERGE INTO的用法
来源:互联网 发布:幻灯片音乐软件 编辑:程序博客网 时间:2024/04/28 17:57
merge 命令可以用来用一个表中的数据来修改或者插入到另一个表。插入或者修改的操作取决于on子句的条件。MERGE INTO本来应该是用来合并表的,不过因为其特性,根据用途不同可以用在以下场合:
关键字、参数
into 子句
在into子句中指定所要修改或者插入数据的目标表
using 子句
在using子句中指定用来修改或者插入的数据源。数据源可以是表、视图或者一个子查询语句。
on 子句
在on子句中指定执行插入或者修改的满足条件。在目标表中符合条件的每一行,oracle用数据源中的相应数据修改这些行。对于不满足条件的那些行,oracle则插入数据源中相应数据。
when matched | not matched
用该子句通知oracle如何对满足或不满足条件的结果做出相应的操作。可以使用以下的两类子句。
1.合并表
2.外部数据插入更新
3.用JOIN表更新
各种情况下的
1.合并表
把表格T2的数据合并到表格T1里,根据结合条件,如果存在则更新,不存在则插入
MERGE INTO T1
USING T1 ON(
T1.user_id = T2.user_id
)
WHEN MATCHED THEN
UPDATE SET
T1.user_nm = T2.user_nm
WHEN NOT MATCHED THEN
INSERT
(user_id,user_nm)
VALUES
(T2.user_id,T2.user_nm)
2.外部数据插入更新
根据外部传进来的参数,如果存在的话,用给定的参数更新,如果不存在则插入MERGE INTO T1
USER DUAL ON(
T1.user_id = '001'
)
WHEN MATCHED THEN
UPDATE SET
T1.user_nm = 'David Vi'
WHEN NOT MATCHED THEN
INSERT
(user_id, user_nm)
VALUES
('001','David Vi')
这个其实和第一个应用差不多,就是USING内部是个多个表进行结合的子表,根据多个表的结合查询然后对对象表进行更新。
对于第1,3应用有个问题,就是更新对象表和USING表(子表)是1:N的关系的话,无法更新。
另外,对于第3个应用,不如用VIEW更新来的快。
- Oracle中MERGE INTO的用法
- 关于oracle中merge into的用法
- oracle 中merge into 的用法
- oracle中merge into的用法
- Oracle 中Merge into 的用法
- oracle中merge into的用法
- Oracle中Merge into 的用法
- oracle 中merge into用法
- oracle中merge into用法
- Oracle merge into的用法
- Oracle MERGE INTO的用法
- oracle merge into 的用法
- oracle merge into的用法
- Oracle 中 merge into when 的用法分析。
- Oracle中Merge into用法总结
- Oracle中Merge into用法总结
- Oracle中Merge into用法总结
- Oracle中Merge into用法总结
- CMarkup类处理XML文件
- 数据结构题典008:顺序表的合并(ANSI C)
- merge into合并资料
- 数据结构题典009:递归实现单链表逆序数出(ANSI C)
- Oracle中merge into的使用
- Oracle中MERGE INTO的用法
- merge...into 语法的使用
- 数据结构题典010:有序单链表的交集(ANSI C)
- Merge into 详细介绍
- 黑马程序员_Java异常总结
- 用一条SQL语句根据条件将数据表中某几列更新到另一个数据表对应有列
- 理解 接口和抽象体(转)
- 黑马程序员 _Java中的进程、线程和多线程
- 在路上——我的2011