您的位置:首页 > 数据库 > MySQL

mybatis--mysql 批量插入批量更新在一条sql语句中完成

2016-01-04 17:21 946 查看
1、前提条件是这张表 需要有唯一索引,更新是基于唯一索引更新的,这张表是以  user_id 和word来作为唯一主键

2、sql语句

<!-- 批量批量更新插入 -->

<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">

insert into t_user_dictionrecord

     (book_id,lesson_id,word,diction_time,user_id,diction_num,module,machine_id,create_time,update_time)

values 

      <foreach collection="list" item="item" index="index" separator=",">

              (#{item.bookId},#{item.lessonId},#{item.word},#{item.dictionTime},#{item.userId},#{item.dictionNum},#{item.module}, #{item.machineId},now(),now())

    </foreach>

     ON DUPLICATE KEY UPDATE diction_num = VALUES(diction_num) + 1,diction_time =diction_time + VALUES(diction_time),update_time = now()

</insert>

注意:如果用到  ON DUPLICATE KEY UPDATE 这句的话,主键id递增方式就会改变,不是一一递增,更新一条数据就会增加一个
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: