首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >通过node.js在mysql中插入多行

问通过node.js在mysql中插入多行
EN

Stack Overflow用户
提问于 2014-06-22 15:20:43
回答 3查看 28.9K关注 0票数 6

我想插入多行到mysql通过node.js的mysql模块。我拥有的数据是

代码语言:javascript
复制
var data = [{'test':'test1'},{'test':'test2'}];

我在用台球

代码语言:javascript
复制
 pool.getConnection(function(err, connection) {
     connection.query('INSERT INTO '+TABLE+' SET ?', data,   function(err, result) {
          if (err) throw err;
            else {
                console.log('successfully added to DB');
                connection.release();
            }
      });
 });
}

这是失败的。

有没有办法让我批量插入,并在所有插入完成后调用函数?

关于锤子

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-06-22 21:35:11

您可以使用嵌套数组在mysql中插入多行。你可以从这篇文章中找到答案:How do I do a bulk insert in mySQL using node.js

票数 1
EN

Stack Overflow用户

发布于 2017-02-09 23:46:53

您也可以尝试这种方法。

假设mytable包括以下列: name、email

代码语言:javascript
复制
var inserts = [];
inserts.push(['name1', 'email1']);
inserts.push(['name2', 'email2']);
conn.query({
sql: 'INSERT into mytable (name, email) VALUES ?',
values: [inserts]
});

这应该是可行的

票数 3
EN

Stack Overflow用户

发布于 2021-07-27 21:25:15

在多次回到这个问题上之后,我想我已经找到了解决这个问题的最干净的方法。

可以将data对象数组拆分为一组键insert_columns和一组包含对象值的数组insert_data。

代码语言:javascript
复制
const data = [
    {test: 'test1', value: 12},
    {test: 'test2', value: 49}
]

const insert_columns = Object.keys(data[0]);
// returns array ['test', 'value']

const insert_data = data.reduce((a, i) => [...a, Object.values(i)], []);
// returns array [['test1', 12], ['test2', 49]]

_db.query('INSERT INTO table (??) VALUES ?', [insert_columns, insert_data], (error, data) => {
    // runs query "INSERT INTO table (`test`, `value`) VALUES ('test1', 12), ('test2', 49)"
    // insert complete 
})

我希望这对任何遇到这个问题的人都有帮助,我可能会在几个月后再次搜索这个来找到我自己的答案

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

https://stackoverflow.com/questions/24348999

复制
相关文章

相似问题

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