oracle批量新增数据,如果有指定字段相同的数据,则更新

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6

<insert id="batchAddStorage">
        MERGE INTO COMPUTER_GOODS_STORAGE t1
        USING (
        <foreach collection="list" item="item" index="index" separator="union" >
            select
            #{item.id} id,
            #{item.selfNo} selfNo,
            #{item.commodityName} commodityName,
            #{item.goodsName} goodsName,
            #{item.modelSpec} modelSpec,
            #{item.mainConfiguration} mainConfiguration,
            #{item.unit} unit,
            #{item.num} num,
            #{item.baseNum} baseNum,
            #{item.purchaseTotalPrice} purchaseTotalPrice
            from dual
        </foreach>) t2
        ON (
        t1.SELF_NO =  t2.selfNo
        )
        WHEN MATCHED THEN
        UPDATE SET t1.NUM = t2.num+t1.NUM,t1.PURCHASE_TOTAL_PRICE = t2.purchaseTotalPrice+t1.PURCHASE_TOTAL_PRICE,
        t1.UNIT = t2.unit,t1.MAIN_CONFIGURATION = t2.mainConfiguration,t1.COMMODITY_NAME = t2.commodityName
        WHEN NOT MATCHED THEN

INSERT
        (ID,SELF_NO, COMMODITY_NAME, GOODS_NAME, MODEL_SPEC, MAIN_CONFIGURATION, UNIT,NUM,BASE_NUM,PURCHASE_TOTAL_PRICE)
        VALUES
        (t2.id,t2.selfNo, t2.commodityName, t2.goodsName, t2.modelSpec, t2.mainConfiguration, t2.unit,t2.num,t2.baseNum,t2.purchaseTotalPrice)
    </insert>


 说明如果传入的字段值 t2.selfNo 的值在表中已存在相同的值(t1.SELF_NO =  t2.selfNo则批量更新指定字段(UPDATE SET t1.NUM = t2.num+t1.NUM,t1.PURCHASE_TOTAL_PRICE = t2.purchaseTotalPrice+t1.PURCHASE_TOTAL_PRICE,
        t1.UNIT = t2.unit,t1.MAIN_CONFIGURATION = t2.mainConfiguration,t1.COMMODITY_NAME = t2.commodityName否则则批量插入数据(INSERT
        (ID,SELF_NO, COMMODITY_NAME, GOODS_NAME, MODEL_SPEC, MAIN_CONFIGURATION, UNIT,NUM,BASE_NUM,PURCHASE_TOTAL_PRICE)
        VALUES
        (t2.id,t2.selfNo, t2.commodityName, t2.goodsName, t2.modelSpec, t2.mainConfiguration, t2.unit,t2.num,t2.baseNum,t2.purchaseTotalPrice)

阿里云国内75折 回扣 微信号:monov8
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6
标签: oracle