Mysql 用一个表里的数据 更新另一个表的数据

需求情景,一个表里的字典字段,另外一个表是记录,需要拿字典里的记录更新记录里的某些字段项,本来想写存储过程的,但是看到可以直接update语句就试了一下,效率挺高,直接上sql语句;200万条记录1分钟搞定;
 

UPDATE
voter_bak a,
precinct b 
SET a.countyName=b.countyName,
a.registrationCenterAddress=b.address,
a.registrationCenterName=b.precinctName,
a.electoralDistrict=b.electoralDistrict 
WHERE
a.precinctCode=b.precinctCode 
AND
a.pollingPlace=b.pollingPlace;

Query OK, 2183119 rows affected (1 min 6.20 sec)
Rows matched: 2183119  Changed: 2183119  Warnings: 0

另外附上备份mysql出现提示表lock的问题;

解决办法:
mysqldump -u dbuser -ppass db --skip-lock-tables > db.sql
 

从select count中的记录更新另外一个表;

update agent a,(select count(posId) as count,agentId from pos group by agentId ) b set a.posCount=b.count  where a.agentId=b.agentId;

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值