zoukankan      html  css  js  c++  java
  • SQL

    1. Orace 存在更新,不存在插入的写法 【MERGE INTO】-【when not matched then insert】-【when matched then update】

    <insert id="updateUserRole" >
            MERGE INTO SVC_ROLE_USER RU USING 
                (SELECT #{userAccount, jdbcType=VARCHAR} as userAccount, #{roleCode, jdbcType=VARCHAR} as roleCode from dual) d 
                on (RU.USER_ACCOUNT = d.userAccount AND RU.ROLE_CODE = d.roleCode)
            when not matched then insert
                <trim prefix="(" suffix=")" suffixOverrides=",">
                    USER_ACCOUNT, 
                    ROLE_CODE, 
                    STATUS, 
                    CREATER, 
                    CREATED_TIME
                </trim>
                <trim prefix="values (" suffix=")" suffixOverrides=",">
                    #{userAccount, jdbcType=VARCHAR}, 
                    #{roleCode, jdbcType=VARCHAR},
                    #{status, jdbcType=VARCHAR, typeHandler=com.ch.evaluation.common.mybatis.MyBatisEnumHandlerSTATUS} ,
                    #{creater, jdbcType=VARCHAR}, 
                    SYSDATE
                </trim>
            when matched then update
                <set>
                    STATUS = #{status, jdbcType=VARCHAR, typeHandler=com.ch.evaluation.common.mybatis.MyBatisEnumHandlerSTATUS} ,
                    MODIFIER = #{modifier, jdbcType=VARCHAR}, 
                    MODIFIED_TIME = SYSDATE
                </set>
                where ROLE_CODE = #{roleCode, jdbcType=VARCHAR AND USER_ACCOUNT = #{userAccount, jdbcType=VARCHAR}
      </insert>

    2. MySql 存在更新,不存在插入的写法【INSERT INTO】-【ON DUPLICATE KEY】

    <insert id="mergeSelective" parameterType="com.zhangmen.teacher.model.forge.TeacherSalaryAccount" >
        INSERT INTO t_biz_teacher_salary_account
            <trim prefix="(" suffix=")" suffixOverrides="," >
              <if test="teacherId != null" >
                teacher_id,
              </if>
              <if test="idCardNumber != null" >
                id_card_number,
              </if>
              <if test="bankAccount != null" >
                bank_account,
              </if>
              <if test="bankName != null" >
                bank_name,
              </if>
              <if test="bankProvince != null" >
                bank_province,
              </if>
              <if test="bankCity != null" >
                bank_city,
              </if>
              <if test="bankBranch != null" >
                bank_branch,
              </if>
              <if test="bankAccountMobile != null" >
                bank_account_mobile,
              </if>
              <if test="alipayAccount != null" >
                alipay_account,
              </if>
              <if test="remark != null" >
                remark,
              </if>
              <if test="contractStatus != null" >
                contract_status,
              </if>
              <if test="deleted != null" >
                deleted,
              </if>
              <if test="createdTime != null" >
                created_time,
              </if>
              <if test="updatedTime != null" >
                updated_time,
              </if>
            </trim>
            <trim prefix="values (" suffix=")" suffixOverrides="," >
              <if test="teacherId != null" >
                #{teacherId,jdbcType=INTEGER},
              </if>
              <if test="idCardNumber != null" >
                #{idCardNumber,jdbcType=VARCHAR},
              </if>
              <if test="bankAccount != null" >
                #{bankAccount,jdbcType=VARCHAR},
              </if>
              <if test="bankName != null" >
                #{bankName,jdbcType=VARCHAR},
              </if>
              <if test="bankProvince != null" >
                #{bankProvince,jdbcType=VARCHAR},
              </if>
              <if test="bankCity != null" >
                #{bankCity,jdbcType=VARCHAR},
              </if>
              <if test="bankBranch != null" >
                #{bankBranch,jdbcType=VARCHAR},
              </if>
              <if test="bankAccountMobile != null" >
                #{bankAccountMobile,jdbcType=VARCHAR},
              </if>
              <if test="alipayAccount != null" >
                #{alipayAccount,jdbcType=VARCHAR},
              </if>
              <if test="remark != null" >
                #{remark,jdbcType=VARCHAR},
              </if>
              <if test="contractStatus != null" >
                #{contractStatus,jdbcType=TINYINT},
              </if>
              <if test="deleted != null" >
                #{deleted,jdbcType=BIT},
              </if>
              <if test="createdTime != null" >
                #{createdTime,jdbcType=TIMESTAMP},
              </if>
              <if test="updatedTime != null" >
                #{updatedTime,jdbcType=TIMESTAMP},
              </if>
            </trim>
        ON DUPLICATE KEY
        <trim prefix="UPDATE" suffixOverrides="," >
              <if test="idCardNumber != null" >
                id_card_number = #{idCardNumber,jdbcType=VARCHAR},
              </if>
              <if test="bankAccount != null" >
                bank_account = #{bankAccount,jdbcType=VARCHAR},
              </if>
              <if test="bankName != null" >
                bank_name = #{bankName,jdbcType=VARCHAR},
              </if>
              <if test="bankProvince != null" >
                bank_province = #{bankProvince,jdbcType=VARCHAR},
              </if>
              <if test="bankCity != null" >
                bank_city = #{bankCity,jdbcType=VARCHAR},
              </if>
              <if test="bankBranch != null" >
                bank_branch = #{bankBranch,jdbcType=VARCHAR},
              </if>
              <if test="bankAccountMobile != null" >
                bank_account_mobile = #{bankAccountMobile,jdbcType=VARCHAR},
              </if>
              <if test="alipayAccount != null" >
                alipay_account = #{alipayAccount,jdbcType=VARCHAR},
              </if>
              <if test="remark != null" >
                remark = #{remark,jdbcType=VARCHAR},
              </if>
              <if test="contractStatus != null" >
                contract_status = #{contractStatus,jdbcType=TINYINT},
              </if>
              <if test="deleted != null" >
                deleted = #{deleted,jdbcType=BIT},
              </if>
              <if test="createdTime != null" >
                created_time = #{createdTime,jdbcType=TIMESTAMP},
              </if>
              <if test="updatedTime != null" >
                updated_time = #{updatedTime,jdbcType=TIMESTAMP},
              </if>
        </trim>
      </insert>
  • 相关阅读:
    PHPCMS V9 导航栏当前栏目高亮
    phpcms v9栏目列表调用每一篇文章内容方法
    PHPCMS V9 为今天或几天前文章加new
    vue.js路由参数简单实例讲解------简单易懂
    vue组件知识总结
    vue.js 利用组件之间通讯,写一个弹出框例子
    vue.js组件之间通讯--父组件调用子组件的一些方法,子组件暴露一些方法,让父组件调用
    vue.js组件之间的通讯-----父亲向儿子传递数据,儿子接收父亲的数据
    vue.js通讯----父亲拿儿子的数据
    git常见操作---由简入深
  • 原文地址:https://www.cnblogs.com/UncleWang001/p/13181065.html
Copyright © 2011-2022 走看看