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);
    复制代码

  • 相关阅读:
    [LeetCode] 117. Populating Next Right Pointers in Each Node II
    [LeetCode] 229. Majority Element II
    [LeetCode] 876. Middle of the Linked List
    HttpClient 使用案例
    github 拷贝项目到本地
    tomcat下文件路径
    同一个tomcat 两个项目 互相访问接口方法
    Mysq 列中存储json格式根据key取value
    mysql 函数和存储过程的区别
    mysql触发器
  • 原文地址:https://www.cnblogs.com/liangyihui/p/5886792.html
Copyright © 2011-2022 走看看