Mysql插入或者更新數據ON DUPLICATE KEY UPDATE使用

業務場景一:
執行單條插入時,如果數據不存在執行插入操作,存在則執行update動作

insert into ${tableNm}
<trim prefix="(" suffix=")" suffixOverrides=",">
	<if test="xxxUniqueKey != null">
       		xxx_unique_key,
      </if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
	<if test="xxxUniqueKey != null">
        #{xxxUniqueKey,jdbcType=VARCHAR},
      </if>
</trim>
ON DUPLICATE KEY UPDATE
<trim suffixOverrides=",">
	<if test="xxxUniqueKey != null">
        xxx_unique_key= #{xxxUniqueKey ,jdbcType=CHAR},
      </if>
</trim>

業務場景二:
執行批量插入時,如果數據不存在執行插入操作,存在則執行update動作

<insert id="batchInsertOnDuplicate" parameterType="java.lang.Object">
    insert into ${tableNm}
    (
        <include refid="Base_Column_List" />
    )
    values
    <foreach collection="list" item="item" index="index" separator=",">
    (
      #{item.fileUniqueKey,jdbcType=VARCHAR}
      ...
      ...
      ...
    )
    </foreach>
    ON DUPLICATE KEY UPDATE
    file_unique_key = values(file_unique_key)
    ...
    ...
    ...
</insert>

學習Java的同學注意了!!!
學習過程中遇到什麼問題或者想獲取學習資源的話,歡迎加入Java學習交流羣,羣號碼:543120397 我們一起學Java!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章