mysql妙用:批量插入记录,遇到重复记录则为自动更新
2016-08-16 17:24
591 查看
摘要
在更新大量数据时如果每条更新执行一次sql性能很低,也容易造成阻塞;批量更新时又有可能遇到主键重复的问题
在更新大量数据时可能同时遇到两个问题:
1、如果每条更新执行一次sql性能很低,也容易造成阻塞;
2、批量更新时又有可能遇到主键重复的问题
3、jdbc.url=jdbc:mysql://ip/库名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true
使用 ON DUPLICATE KEY UPDATE 一条sql解决批量更新和主键重复问题(id为主键)
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">
在更新大量数据时如果每条更新执行一次sql性能很低,也容易造成阻塞;批量更新时又有可能遇到主键重复的问题
在更新大量数据时可能同时遇到两个问题:
1、如果每条更新执行一次sql性能很低,也容易造成阻塞;
2、批量更新时又有可能遇到主键重复的问题
3、jdbc.url=jdbc:mysql://ip/库名?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&allowMultiQueries=true
使用 ON DUPLICATE KEY UPDATE 一条sql解决批量更新和主键重复问题(id为主键)
<insert id="batchInsert" parameterType="java.util.List" useGeneratedKeys="true">
INSERT INTO t_cloud_vcard (account_id,BEGIN,END,NAME,PROFILE,SOURCE,FN,N,NICKNAME,PHOTO,BDAY,ADR,LABEL,TEL,EMAIL,MAILER,TZ,GEO,TITLE,ROLE,LOGO, AGENT,ORG,CATEGORIES,NOTE,PRODID,REV,SORT_STRING,SOUND,UID,URL,VERSION,CLASS,XTENDED,IMPP,create_time) VALUES <foreach collection="list" item="item" index="index" separator=","> (#{item.accountId},#{item.BEGIN},#{item.END},#{item.NAME},#{item.PROFILE},#{item.SOURCE},#{item.FN},#{item.N},#{item.NICKNAME}, #{item.PHOTO},#{item.BDAY},#{item.ADR},#{item.LABEL},#{item.TEL},#{item.EMAIL}, #{item.MAILER},#{item.TZ},#{item.GEO},#{item.TITLE},#{item.ROLE},#{item.LOGO},#{item.AGENT},#{item.ORG},#{item.CATEGORIES},#{item.NOTE}, #{item.PRODID},#{item.REV},#{item.SORT_STRING},#{item.SOUND}, #{item.UID},#{item.URL},#{item.VERSION},#{item.CLASS},#{item.XTENDED},#{item.IMPP},now()) </foreach> ON DUPLICATE KEY UPDATE TEL=VALUES(TEL),EMAIL=VALUES(EMAIL),XTENDED=VALUES(XTENDED),PHOTO=VALUES(PHOTO)
</insert>
相关文章推荐
- 批量插入记录,遇到重复记录则为自动更新
- mysql妙用:批量插入记录,遇到重复记录则为自动更新
- ON DUPLICATE KEY UPDATE批量插入记录,遇到重复记录则为自动更新
- sqlite 批量插入, 重复插入(更新)
- Django 使用 MySQL 存储时间中遇到的问题(在数据库中记录插入时间、更新时间、删除时间)
- mysql timestamp 自动记录首次插入时间与自动更新修改时间
- mysql 批量插入, 如果重复自动更新
- MySQL建立唯一索引实现插入重复自动更新
- sql server:向表中批量插入记录时如何避免重复插入记录
- MYSQL中防止插入重复记录的解决方案(无重复值更新)
- Mybatis+Oracle批量插入(自动过滤重复数据)与删除
- Mysql存在唯一索引条件下,实现插入如果重复则自动更新
- MySQL不重复插入,记录不存在则插入,存在则更新
- timestamp ---自动更新修改时间 与 记录首次插入时间
- 一条insert语句批量插入多条记录 AND 多条件游标更新 变CASE WHEN更新法提高速度
- maven+mybatis+mybatis-generator+sql server 2005自动生成代码,加上自定义分页插件和批量插入更新插件
- Oracle语句自动判断是要更新记录还是要插入记录
- MySQL 插入记录时自动更新时间戳
- ASP.NET基础教程-使用CommandBuilder对象自动生成SQL语句对数据进行批量更新
- asp下如何在Access数据库中立即得到所插入记录的自动编号?