Merge在Oracle中的用法注意问题


merge在Oracle中的用法注意问题:

    【样例】

    MERGE INTO dest_table dest

    USING source_table source

    ON (source.PENDINGCODE = dest.PENDINGCODE and source.PENDINGPERSONID = dest.PENDINGPERSONID)

    WHEN MATCHED THEN

    UPDATE SET dest.PENDINGID = source.PENDINGID

    WHEN NOT MATCHED THEN

    INSERT

    VALUES

    (source.PENDINGID, source.PENDINGCODE, source.PENDINGTITLE, source.PENDINGDATE, source.PENDINGSENDER, source.PENDINGPERSONID, source.PENDINGURL, source.PANDINGSTATUS, source.PANDINGCITYCODE, source.PANDINGTYPE, source.NOTE);

    【注意问题】

    1、前提:表dest_table和表source_table是同构的;

    2、on条件中不能出现primary key的属性列,并且保证on的条件在业务上讲具有唯一性;3、update时,不能将primary key更新掉,即只能以表的primary key作为update的set条件

merge在Oracle中的用法注意问题:

    【样例】

    MERGE INTO dest_table dest

    USING source_table source

    ON (source.PENDINGCODE = dest.PENDINGCODE and source.PENDINGPERSONID = dest.PENDINGPERSONID)

    WHEN MATCHED THEN

    UPDATE SET dest.PENDINGID = source.PENDINGID

    WHEN NOT MATCHED THEN

    INSERT

    VALUES

    (source.PENDINGID, source.PENDINGCODE, source.PENDINGTITLE, source.PENDINGDATE, source.PENDINGSENDER, source.PENDINGPERSONID, source.PENDINGURL, source.PANDINGSTATUS, source.PANDINGCITYCODE, source.PANDINGTYPE, source.NOTE);

    【注意问题】

    1、前提:表dest_table和表source_table是同构的;

    2、on条件中不能出现primary key的属性列,并且保证on的条件在业务上讲具有唯一性;3、update时,不能将primary key更新掉,即只能以表的primary key作为update的set条件


« 
» 
快速导航

Copyright © 2016 phpStudy | 豫ICP备2021030365号-3