oracle mybatis 批量插入存在更新,不存在插入

141 阅读1分钟
  MERGE INTO SH_YJ_XX  s
        USING (
        <foreach collection="list" item="item" separator="union all">
        -- 切记这里不需要括号
            SELECT
                    #{item.name,jdbcType=VARCHAR} name,
                    #{item.name2,jdbcType=VARCHAR} name2,
                    #{item.cgssbuuid,jdbcType=VARCHAR} uuid      --切记: 结尾不需要 ,
            FROM DUAL

        </foreach> ) t1
        <!-- 关联的主键编号-->
        on (
        s.uuid= t1.uuid
        )
        <!-- 如果存在就更新 -->
        WHEN MATCHED THEN
        UPDATE SET  <!-- 注意,这里不要写(也就是主键)set  cgssbuuid==  xx  -->
              s.name= t1.name,
              s.name2= t1.name2    --切记: 结尾不需要 ,
        WHEN NOT MATCHED THEN
            INSERT
            (name,name2,uuid)
            VALUES
            (t1.name,t1.name2,t1.uuid)