MySQL實現批量插入更新


插入數據,如果數據庫中主鍵已存在則更新on duplicate key update后的字段,主鍵不變。

<!-- 插入/更新設備列表 -->
  <insert id="insertOrUpdateList" parameterType="java.util.List">
    insert into tmp
      <trim prefix="(" suffix=")" >
         uid, m_id, name,is_selected,is_delete,create_time,create_userid
     </trim>
     values
     <foreach  collection="list" item="item" index="index" separator=",">
      <trim prefix=" (" suffix=")" suffixOverrides="," >
          <choose>
            <when test="item.uid !=null and item.uid != ''">
                 #{item.uid,jdbcType=VARCHAR},
            </when>
            <otherwise>
                md5(uuid()),
            </otherwise>
          </choose>
          #{item.mId,jdbcType=INTEGER},
          #{item.name,jdbcType=VARCHAR},
          #{item.isSelected,jdbcType=VARCHAR}
      </trim>
    </foreach>
        on duplicate key update
            m_id= VALUES(m_id),
            name=VALUES(name),
            is_selected=VALUES(is_selected)
  </insert>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM