首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用node.js在mySQL中执行大容量插入

如何使用node.js在mySQL中执行大容量插入
EN

Stack Overflow用户
提问于 2012-01-18 02:33:30
回答 10查看 177.6K关注 0票数 153

如果使用像https://github.com/felixge/node-mysql这样的东西,如何在mySQL中进行大容量插入

EN

回答 10

Stack Overflow用户

发布于 2017-05-16 13:27:34

@Ragnar123答案是正确的,但我看到很多人在评论中说它不起作用。我也遇到了同样的问题,看起来你需要像这样用[]包装你的数组:

代码语言:javascript
复制
var pars = [
    [99, "1984-11-20", 1.1, 2.2, 200], 
    [98, "1984-11-20", 1.1, 2.2, 200], 
    [97, "1984-11-20", 1.1, 2.2, 200]
];

它需要像[pars]一样传递到方法中。

票数 25
EN

Stack Overflow用户

发布于 2018-08-27 06:04:32

我今天遇到了这个(mysql 2.16.0),我想我应该分享我的解决方案:

代码语言:javascript
复制
const items = [
    {name: 'alpha', description: 'describes alpha', value: 1},
    ...
];

db.query(
    'INSERT INTO my_table (name, description, value) VALUES ?',
    [items.map(item => [item.name, item.description, item.value])],
    (error, results) => {...}
);
票数 22
EN

Stack Overflow用户

发布于 2017-08-04 06:41:39

我四处寻找关于批量插入对象的答案。

根据Ragnar123的回答,我创建了这个函数:

代码语言:javascript
复制
function bulkInsert(connection, table, objectArray, callback) {
  let keys = Object.keys(objectArray[0]);
  let values = objectArray.map( obj => keys.map( key => obj[key]));
  let sql = 'INSERT INTO ' + table + ' (' + keys.join(',') + ') VALUES ?';
  connection.query(sql, [values], function (error, results, fields) {
    if (error) callback(error);
    callback(null, results);
  });
}

bulkInsert(connection, 'my_table_of_objects', objectArray, (error, response) => {
  if (error) res.send(error);
  res.json(response);
});

希望它能帮上忙!

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8899802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档