MySQL批量操作相關語句
阿新 • • 發佈:2019-03-09
批量更新 weight type gettext cti 相同 插入 rtert 註意
項目中經常的需要使用批量操作語句對數據進行操作,使用批量語句的時候需要註意MySQL數據庫的條件限制,這裏主要是數據的大小限制,這裏對批量插入、批量查找及批量更新的基礎操作進行下簡單的匯總。
1、批量insert插入語句,如下的語句在測試環境嘗試過1W+的批量插入,具體數量跟表結構及字段內容有關系。
<insert id=”addTextPushList”paramerterType = “java.util.List”> INSERT INTO SYS_TEXT_PUSH( PUSH_ID, USER_UM_ACCOUNT,USER_NAME, SECTION, USER_MOBILE, PUSH_STATUS, PROMOTE_ID, CREATED_BY, CREATION_DATE, ENABLED_FLAG )values <foreach collection=”list” item = “item” separator=”,”>( #{item.pushId}, #{item,userUmAccount}, #{item.userName}, #{item.section}, #{item.userMobile}, #{item.pushStatus}, #{item.promoteId}, #{item.createdBy}, #{item.creationDate}, #{item.enabledFlag} ) </foreach> </insert>
2、批量select查詢語句
<select id = “getTextPromoteByIds” parameterType = “java.util.list” resultMap = “textPromoteMap”> SELECT * FROM SYS_TEXT_PROMOTE WHERE TEXT_PUSH_FLAG = 1 AND PROMOTE_ID IN <foreach collection=”list” item = “item” open=”(” separator=”,” close =”)”> #{item} </foreach> </select>
3、批量update語句。
第一種情況是需更新的值相同:
<update id = “updatePushStatus” parameterType = “java.util.List”> update SYS_TEXT_PUSH SET PUSH_STATUS = 1, LAST_UPDATE_DATE = NOW() WHERE PUSH_ID IN <foreach collection=”list” item = “item” open=”(” separator=”,” close =”)”> #{item} </foreach> </update>
第二種情況是需更新的值不同:
<update id = “updatePushStatus” parameterType = “java.util.List”> <foreach collection=”list” item = “item” index = “index”> update SYS_TEXT_PUSH SET PUSH_STATUS = #{item.pushStatus}, LAST_UPDATE_DATE = NOW() WHERE PUSH_ID = #{item.pushId} </foreach> </update>
MySQL批量操作相關語句