最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle、Mysql數(shù)據(jù)庫(kù)中的insertOrUpdateBatch方法(數(shù)據(jù)存在則更新,不存在則插入方法)

 更新時(shí)間:2026年07月13日 08:38:03   作者:自律,約束。  
這篇文章主要介紹了Oracle、Mysql數(shù)據(jù)庫(kù)中insertOrUpdateBatch方法的相關(guān)資料,Oracle用MERGE INTO實(shí)現(xiàn),MySQL語(yǔ)法則完全不同,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

Oracle 數(shù)據(jù)庫(kù) 和 Mysql 數(shù)據(jù)庫(kù) 中的SQL 存在不同的方言,在寫SQL時(shí)要注意區(qū)分

1. Orecal 數(shù)據(jù)庫(kù)

Orecal 數(shù)據(jù)庫(kù)的  insertOrUpdateBatch 是用 mege into 類實(shí)現(xiàn)的

// merge into 語(yǔ)法  當(dāng)數(shù)據(jù)存在時(shí) 更新數(shù)據(jù), 不能更新 指定主鍵字段 (判斷數(shù)據(jù)是否存在的字段)

merge into QWPH_XN.SYS_AREA   t1
using (select 'lkz001' as ID,'KD001' as P_ID  from dual) t2
on ( t1.ID = t2.ID and t1.P_ID = t2.P_ID)
when matched then
    update
    set t1.AREA_NAME = 'lkz0016666666666666666666'
when not matched then
    insert (ID,P_ID)
    values ('lkz002','KD001' );

    
//  ****  dual是一張臨時(shí)表,也可以自己構(gòu)建,例如:    

 merge into  QWPH_XN.SYS_AREA   t1
using DUAL
on ( t1.ID= 'lkz003')
when matched then
    update
    set t1.AREA_NAME = 'KEDONG'
when not matched then
    insert (ID,P_ID)
    values ('lkz003','KD003' );


<!--   根據(jù)指定 字段 進(jìn)行更新, 不能更新關(guān)聯(lián)條件中的 字段
       如果 更新字段 被 改動(dòng)了,那就是 插入
-->
   
 <insert id="insertOrUpdateBatch">
            <foreach collection="collectList" item="entity" separator=";">
                merge into ${model}.SYS_AREA t1 using dual on (t1.ID = #{entity.id} and t1.P_ID = #{entity.pId})
                when matched then
                update
                <set>
                    <if test="entity.areaName != '' and  entity.areaName != null ">
                        AREA_NAME = #{entity.areaName},
                    </if>

                    <if test="entity.dtype != '' and  entity.dtype != null ">
                        DTYPE = #{entity.dtype},
                    </if>

                    <if test="entity.level != '' and  entity.level != null ">
                        LEVEL = #{entity.level},
                    </if>

                    <if test="entity.datasourceId != '' and  entity.datasourceId != null ">
                        DATASOURCE_ID = #{entity.datasourceId},
                    </if>

                </set>

                when not matched then
                insert (ID, AREA_NAME, P_ID, DTYPE, "LEVEL", DATASOURCE_ID)
                values (#{entity.id}, #{entity.areaName},#{entity.pId},
                #{entity.level},#{entity.dtype},#{entity.datasourceId})

            </foreach>

    </insert>

2. Mysql 數(shù)據(jù)庫(kù)

Orecal 數(shù)據(jù)庫(kù) 和 Mysql 數(shù)據(jù)庫(kù)的 插入或更新 sql 語(yǔ)句 不一樣

<!--
insert into on duplicate key update表示插入更新數(shù)據(jù),
當(dāng)記錄中有PrimaryKey,或者unique索引的話,
如果數(shù)據(jù)庫(kù)已經(jīng)存在數(shù)據(jù),則用新數(shù)據(jù)更新(update),
如果沒(méi)有數(shù)據(jù)效果則和insert into一樣。
-->

<insert id="insertOrUpdateBatch"keyProperty="uuid"useGeneratedKeys="true">

inSert intO TASK LOG(TASK_ID, TASK_NAME, EXEC TYPE, STATUS, EXEC_TIME, EXCEPTION_MESSAGE)
values
<foreach collection="entities" item="entity" separator=" ">
(#lentity,taskId}, #entity.taskName}, #lentity.execType}, #ientity,status}, #entity.execTime}, #lentity.exceptionMessage})
</foreach>
on duplicate key update
TASK ID = ValUeS(TASK ID)
TASK NAME = VLUeS(TASK NAME)
EXEC TYPE = ValUeS(EXEC_TYPE)
STATUS = valveS(STATUS).
EXEC TIME = VlveS(EXEC TIME)
EXCEPTION_MESSAGE = VaLUeS(EXCEPTION_MESSAGE)

</insert>

總結(jié) 

到此這篇關(guān)于Oracle、Mysql數(shù)據(jù)庫(kù)中的insertOrUpdateBatch方法的文章就介紹到這了,更多相關(guān)Oracle、Mysql中insertOrUpdateBatch方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • oracle去除空格的三種方式舉例總結(jié)

    oracle去除空格的三種方式舉例總結(jié)

    這篇文章主要介紹了oracle去除空格的三種方式,分別是使用TRIM()函數(shù)去除字符串兩端空格,使用REPLACE()函數(shù)替換掉所有空格,以及利用REPLACE()結(jié)合CHR()函數(shù)去除制表符、換行符、回車符和空格符,這些方法幫助優(yōu)化字符串處理,需要的朋友可以參考下
    2024-11-11
  • 解析Oracle中多表級(jí)聯(lián)刪除的方法

    解析Oracle中多表級(jí)聯(lián)刪除的方法

    創(chuàng)建數(shù)據(jù)庫(kù)時(shí)為了防止其他人不小心刪除操作錯(cuò)誤, 所有的外鍵都沒(méi)有加級(jí)聯(lián)刪除。哪知,不知什么時(shí)候自己入了一批錯(cuò)誤的數(shù)據(jù)進(jìn)去,入庫(kù)使用的是軟件自動(dòng)的,一下點(diǎn)錯(cuò)給自己帶來(lái)無(wú)盡麻煩啊,刪除就不好辦了
    2013-07-07
  • DB2數(shù)據(jù)庫(kù)切換為oracle數(shù)據(jù)庫(kù)經(jīng)驗(yàn)教訓(xùn)總結(jié)(必看篇)

    DB2數(shù)據(jù)庫(kù)切換為oracle數(shù)據(jù)庫(kù)經(jīng)驗(yàn)教訓(xùn)總結(jié)(必看篇)

    下面小編就為大家?guī)?lái)一篇DB2數(shù)據(jù)庫(kù)切換為oracle數(shù)據(jù)庫(kù)經(jīng)驗(yàn)教訓(xùn)總結(jié)(必看篇)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-04-04
  • oracle使用索引與不使用索引的性能詳析

    oracle使用索引與不使用索引的性能詳析

    索引是建立在表的一列或多個(gè)列上的輔助對(duì)象,目的是加快訪問(wèn)表中的數(shù)據(jù),下面這篇文章主要給大家分析介紹了關(guān)于oracle使用索引與不使用索引的性能的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2018-10-10
  • Oracle 9i產(chǎn)品文檔

    Oracle 9i產(chǎn)品文檔

    Oracle 9i產(chǎn)品文檔...
    2007-03-03
  • Oracle數(shù)據(jù)泵(expdp)導(dǎo)入導(dǎo)出數(shù)據(jù)的詳細(xì)步驟

    Oracle數(shù)據(jù)泵(expdp)導(dǎo)入導(dǎo)出數(shù)據(jù)的詳細(xì)步驟

    這篇文章主要介紹了Oracle數(shù)據(jù)泵(expdp)導(dǎo)入導(dǎo)出數(shù)據(jù)的詳細(xì)步驟,文中詳細(xì)描述了源數(shù)據(jù)庫(kù)操作中的數(shù)據(jù)備份和目標(biāo)數(shù)據(jù)庫(kù)操作中的數(shù)據(jù)恢復(fù)過(guò)程,需要的朋友可以參考下
    2024-12-12
  • group by,having,order by的用法詳解

    group by,having,order by的用法詳解

    如果一個(gè)查詢中使用了分組函數(shù),任何不在分組函數(shù)中的列或表達(dá)式必須要在group by中,下面為大家簡(jiǎn)要介紹下group by,having,order by的用法
    2013-09-09
  • 一次簡(jiǎn)單的Oracle恢復(fù)Case實(shí)戰(zhàn)記錄

    一次簡(jiǎn)單的Oracle恢復(fù)Case實(shí)戰(zhàn)記錄

    這篇文章主要給大家介紹了一次簡(jiǎn)單的Oracle恢復(fù)Case實(shí)戰(zhàn)過(guò)程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Oracle RMAN三種不完全恢復(fù)方式的實(shí)戰(zhàn)指南

    Oracle RMAN三種不完全恢復(fù)方式的實(shí)戰(zhàn)指南

    在Oracle數(shù)據(jù)庫(kù)的日常管理中,不完全恢復(fù)(Incomplete Recovery)是一項(xiàng)重要且實(shí)用的技能,尤其是在面對(duì)人為誤操作(如誤刪表)或邏輯故障(如表空間損壞)時(shí),本文將通過(guò)三個(gè)實(shí)際演示案例,逐一呈現(xiàn)三種不完全恢復(fù)方式的操作步驟,需要的朋友可以參考下
    2025-10-10
  • Oracle數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息方法詳解

    Oracle數(shù)據(jù)庫(kù)統(tǒng)計(jì)信息方法詳解

    這篇文章主要介紹了如何查看和收集Oracle數(shù)據(jù)庫(kù)中的統(tǒng)計(jì)信息,包括表、索引和列的統(tǒng)計(jì)信息,介紹了DBMS_STATS包的功能和使用方法,以及如何通過(guò)分析和刪除統(tǒng)計(jì)信息來(lái)優(yōu)化數(shù)據(jù)庫(kù)性能,需要的朋友可以參考下
    2024-12-12

最新評(píng)論

百色市| 嫩江县| 南漳县| 永胜县| 固原市| 和硕县| 会同县| 新安县| 祁门县| 日土县| 宜宾县| 和顺县| 越西县| 瑞金市| 巫山县| 南开区| 兴化市| 深圳市| 榆中县| 千阳县| 石家庄市| 循化| 佳木斯市| 思茅市| 陆良县| 木兰县| 广饶县| 石棉县| 阆中市| 小金县| 富裕县| 南溪县| 化隆| 襄城县| 邳州市| 深泽县| 林芝县| 肃宁县| 连平县| 浦江县| 云阳县|