zoukankan      html  css  js  c++  java
  • Merge into(oracle)

    永不放弃,一切皆有可能!!!

    只为成功找方法,不为失败找借口!

    Merge into(oracle)

    作用:使用一条sql语句进行insert或者update操作,如果存在就update,如果不存在就insert

    语法:

    复制代码
    MERGE INTO table_name t1
    USING (table|view|sub_query) t2
    ON (join condition) 
    WHEN MATCHED THEN 
        UPDATE table_name 
        SET col1 =.., 
            col2 =..WHEN NOT MATCHED THEN 
        INSERT (..) VALUES (..); 
    复制代码

    注意:由于Merge在oracle中最先是用于整表更新,所以t2中的数据每一条都会和t1进行on中的条件比对

        insert或者update的记录数和t2中的记录数相同,当然也可在update后加where条件控制

    eg:

    复制代码
    MERGE INTO CUSTOMIZATION C1
    USING (SELECT 'isMonitor' AS OPERATION_KEY, '0001' AS USER_ID , '0' AS OPERATION_VALUE FROM DUAL) C2
    ON (C1.OPERATION_KEY = C2.OPERATION_KEY AND C1.USER_ID = C2.USER_ID)
    WHEN MATCHED THEN
    UPDATE SET C1.OPERATION_VALUE = C2.OPERATION_VALUE WHERE C1.OPERATION_KEY = C2.OPERATION_KEY AND C1.USER_ID = C2.USER_ID
    WHEN NOT MATCHED THEN
    INSERT (OPERATION_KEY,OPERATION_VALUE,USER_ID) VALUES(C2.OPERATION_KEY,C2.OPERATION_VALUE,C2.USER_ID);
    复制代码

    首次插入时表中没有符合条件数据,则插入数据,

    只更改operation_value, operation_key 和user_id存在时更新数据,operation_value更新为1

    复制代码
    MERGE INTO CUSTOMIZATION C1
    USING (SELECT 'isMonitor' AS OPERATION_KEY, '0001' AS USER_ID , '1' AS OPERATION_VALUE FROM DUAL) C2
    ON (C1.OPERATION_KEY = C2.OPERATION_KEY AND C1.USER_ID = C2.USER_ID)
    WHEN MATCHED THEN
    UPDATE SET C1.OPERATION_VALUE = C2.OPERATION_VALUE WHERE C1.OPERATION_KEY = C2.OPERATION_KEY AND C1.USER_ID = C2.USER_ID
    WHEN NOT MATCHED THEN
    INSERT (OPERATION_KEY,OPERATION_VALUE,USER_ID) VALUES(C2.OPERATION_KEY,C2.OPERATION_VALUE,C2.USER_ID);
    复制代码

  • 相关阅读:
    流程图制作在云上 https://www.processon.com/
    白板编程浅谈——Why, What, How
    如何创建一个非常酷的3D效果菜单
    Xcode及模拟器SDK下载
    Swift项目兼容Objective-C问题汇总
    iOS 多个精致动画
    代码注释中的5要与3不要
    如何处理iOS中照片的方向
    会报编译器警告的Xcode 6.3新特性:Nullability Annotations
    iOS应用架构谈 view层的组织和调用方案
  • 原文地址:https://www.cnblogs.com/liangyihui/p/5886792.html
Copyright © 2011-2022 走看看