一、mysql批量插入

1.SQL语句:

INSERT INTO table_name (col_name1, col_name2,...) VALUES(col_value1,col_value2,...), (col_value1,col_value2,...)

2.注意事项:

mysql语句并不是越长越好,mysql语句长度有限制,可以查看mysql的配置文件my.in中max_allowed_packet属性,并进行相应设置(比如max_allowed_packet = 20M)。

3.案例(使用java和mybatis):

java代码:

int saveAll(Collection accountBankList);

mybatis的xml代码:

INSERT INTO account_bank (user_id, bank_no, bank, branch, province, city, area, add_time, add_ip, status,

pic_path, tpp_card_id, mobile_phone)

VALUES

separator=",">

(#{item.userId}, #{item.bankNo}, #{item.bank}, #{item.branch}, #{item.province}, #{item.city}, #{item.area}, #{item.addTime}, #{item.addIp}, #{item.status}, #{item.picPath}, #{item.tppCardId}, #{item.mobilePhone})

二、mysql批量更新

1.SQL语句:

INSERT INTO table_name (col_name1, col_name2,...) VALUES(col_value1,col_value2,...), (col_value1,col_value2,...) ON DUPLICATE KEY UPDATE col_name1=VALUES(col_name1), col_name2= VALUES(col_name2)

2.注意事项:

它的实现原理是,首先mysql根据表名后面列出的主键,查找表(因为是主键,所以在表中唯一存在)。如果存在该行数据,则按照最后的col_name = values(col_name)列表对相应的字段,按照values列表中给出的值进行更新。

3.案例(使用java和mybatis):

java代码:

int updateAll(Collection userList);

mybatis的xml代码:

INSERT INTO user(user_id, email, card_id, real_name, tpp_user_cust_id, tpp_user_id, tpp_account_id

)

VALUES

separator=",">

(#{item.userId}, #{item.email}, #{item.cardId}, #{item.realName}, #{item.tppUserCustId}, #{item.tppUserId},

#{item.tppAccountId}

)

ON DUPLICATE KEY UPDATE email=VALUES(email),card_id=VALUES(card_id),real_name=VALUES(real_name),

tpp_user_cust_id=VALUES(tpp_user_cust_id),tpp_user_id=VALUES(tpp_user_id), tpp_account_id=VALUES(tpp_account_id)

三、参考的文章

mysql批量插入跟更新_mysql批量插入以及批量更新相关推荐

  1. mysql update 联合更新_Mysql update多表联合更新的方法小结

    下面我建两个表,并执行一系列sql语句,仔细观察sql执行后表中数据的变化,很容易就能理解多表联合更新的用法 student表 class表 1. 执行 UPDATE student s , clas ...

  2. mysql循环更新_MySql多表循环遍历更新

    先给大家解释解释发表这篇博文的主要思想是: MySql数据库中存在大量的表结构,而且这些表都存在一个共同点,就是表中都有相同字段,比如id,name,city,adress,lat,lng.表中字段i ...

  3. mysql 批量插入数据方法_mysql大批量插入数据的4种方法示例

    前言 本文主要给大家介绍了关于mysql大批量插入数据的4种方法,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧 方法一:循环插入 这个也是最普通的方式,如果数据量不是很大,可以使用, ...

  4. mysql begin end 批量更新_MySql中4种批量更新的方法

    1.replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,'y');例: replace into ...

  5. mysql数据存在就更新_Mysql:如果数据存在则更新,不存在则插入

    mysql语法支持如果数据存在则更新,不存在则插入,首先判断数据存在还是不存在的那个字段要设置成unique索引, 例如表tb_addrbook如下: 索引: 语句1:不存在插入 INSERT INT ...

  6. mysql update批量更新_MySql中4种批量更新的方法

    mysql 批量更新共有以下四种办法 1..replace into 批量更新 replace into test_tbl (id,dr) values (1,'2'),(2,'3'),...(x,' ...

  7. mysql 导入主键冲突_MySQL 处理插入过程中的主键唯一键重复值的解决方法

    本篇文章主要介绍在插入数据到表中遇到键重复避免插入重复值的处理方法,主要涉及到IGNORE,ON DUPLICATE KEY UPDATE,REPLACE:接下来就分别看看这三种方式的处理办法. IG ...

  8. mysql汉字插不进去_Mysql下插入汉字失败

    1.问题:mysql 遇到某些中文插入异常 最近有同学反馈了这样一个问题: 上述语句在脚本中 load 入库的时候会 hang 住,web 前端.命令行操作则要么抛出 Incorrect string ...

  9. mysql中输入没反应_mysql数据库插入无反应问题

    情景再现: 页面点击插入数据操作无反应 问题追溯: 查看日志,sql执行语句输出,sql语句无错,报异常Lock wait timeout exceeded; try restarting trans ...

  10. mysql怎么插入10w测试数据_mysql快速插入100万测试数据

    向数据库添加100W条测试数据,直接在普通表中添加速度太慢,可以使用内存表添加,然后将内存表数据复制到普通表. 创建表 内存表 DROP TABLE IF EXISTS test_memory; CR ...

最新文章

  1. NTU 课程笔记 CE7454作业(1):DeepFashion属性预测挑战【介绍篇】
  2. TextBox控件中只输入整数的几种方法
  3. [C#]我自己写的一个对字节中每位进行修改值的函数
  4. Centos 6.9 iptables 开启端口 5050,5151 等
  5. python开发转行做数据分析_转行学IT,Java、Python、大数据选择学哪个发展好?
  6. 计算机等级考试绝对应用,96年4月至210年全国计算机等级考试绝对全收集.docx
  7. nginx配置文件祥解
  8. 团队项目前期冲刺-7
  9. linux 查看网络流量
  10. Excel在数据分析和日常工作的运用
  11. 松下伺服电机a6测试软件,松下A6伺服选型步骤
  12. python get请求下载excel_用Python下载Sharepoint Excel文件
  13. 双系统扩展Linux内存
  14. 重仓金融股却遭“滑铁卢”
  15. javascript高级程序设计读书笔记2
  16. Android overlay
  17. 新版白话空间统计(9):置信度的初探
  18. 【RBF预测】基于RBF神经网络实现预测matlab源码
  19. java调用 post_java调用post请求到localhost:4040
  20. the+比较级,the+比较级

热门文章

  1. 广州科二化龙考场_广州市机动车驾驶人化龙考场交通路线攻略
  2. html修改修改头像业务,修改头像.html
  3. 【设计】同步降压型DC-DC转换器驱动电路设计
  4. 移动Web UI库(H5框架)有哪些,看这里就够了
  5. SVG和G语言的混合显示引擎
  6. 电子邮件验证及部分常用正则表达式
  7. selenium安装和chromedriver下载安装
  8. 高速PCB设计规范(二)
  9. Matlab绘制折线图及局部放大图
  10. 人工智能系列 之常用英文词汇