mysql批量插入跟更新_mysql批量插入以及批量更新

一、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)

三、参考的文章

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值