mysql 存储过程 批量_mysql存储过程批量处理数据

最近在学习Node.js的mysql模块,遇到一个问题:

如何调用存储过程把批量数据一次性写入表中?

想传入一个数组作为参数,但mysql存储过程不支持。

可以使用for循环,但性能差。

于是,想了一个方法:多语句执行。

现有一个user表,包含id(自增),uname,age三个字段。

存储过程MultiProc,接收两个参数(uname, age),作用是往user表插入一条数据。

现在要批量插入多条数据,比如

[

{

"uname": "alice",

"age": 18

},

{

"uname": "bob",

"age": 20

},

...

]

用Node.js 可以这样做:

function (datas, callback) {

let len = datas.length;

let sql = "call MultiProc(?, ?); ";

let sqls = sql.repeat(len); //重复语句

let params = [];

for (let i = 0; i < len; i++) {

let data = datas[i];

params.push(data.uname, data.age);

}

query(sqls, params, callback);

}

简单讲,就是重复多次待执行的sql语句,把数据“平铺”放在一个数组中。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值