MySQL批量修改记录

我们知道MySQL支持批量添加记录,用法也比较简单,不过需要编码需要注意一下,因为很容易搞错

var jargs = require('./argspw.json');
const mysql = require("mysql"); 

const mysqlpool= mysql.createPool({
	host:jargs.mysqlip,
	user:jargs.mysqluser,
	password:mycrypt.decrypt(jargs.mysqlpw),//配置文件里口令密文解密
	port:jargs.mysqlport,
	database:jargs.mysqldatabase
	});
const addrcs='insert into table1(id,name,age,school) values ?'
var rclist=[["id1","name1","age1","sc1"],["id2","name2","age2","sc2"],["id3","name3","age3","sc3"]]//注意每个记录是一个list,这些记录又是一个大list的成员
mysqlpool.getConnection((errmpgc, mysqlconn)=> { if (errmpgc) { console.log("建立连接失败"); } else {
	mysqlconn.query(addrcs,[rclist],(erriw1,results1)=> { //注意在rclist外又包裹了一对方括号
		if (erriw1) { console.log("SQL执行失败"); console.log(erriw1.message); }
		else { console.log("SQL执行成功"); }
	mysqlconn.release();
	}});

update语句是不支持批量提交的,不过可以用replace into或者insert into on duplicate key update曲线救国。需要注意的是要在table中定义主键,replace into是对重复记录先删后填加,后者是更改,如果values不全的话,前者会丢失这些信息,后者则保留这些信息。所以推荐采用后一种方法。

const updatercs='insert into table1(id,name,school) values ? on duplicate key update school=values(school),name=values(name)'
var rclist=[["id1","name11","pku"],["id2","name22","pku"],["id3","name33","pku"]]
mysqlpool.getConnection((errmpgc, mysqlconn)=> { if (errmpgc) { console.log("建立连接失败"); } else {
	mysqlconn.query(updatercs,[rclist],(erriw1,results1)=> { 
		if (erriw1) { console.log("SQL执行失败"); console.log(erriw1.message); }
		else { console.log("SQL执行成功"); }
	mysqlconn.release();
	}});

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值