javascript - 如何使用nodejs在mariadb中批量插入?

标签 javascript node.js mariadb mariasql

每当我尝试运行我的代码时,都会显示列数不匹配错误。

values=[
    [{id:12227722345,name:"dgssssdavgsgfv",pass:"cvhsssssadfvugod"}],
    [{id:12,name:"ddd",pass:"cvh"}]
   ];

c.query('insert into Hash.asn(userid,username,password) values (?,?,?)',[values],function(err,rows)
{
  if (err)
    console.log(err);

  c.query('commit');
  console.log(rows);

}); 

错误:

{ [Error: Column count doesn't match value count at row 1] code: 1136 }

最佳答案

如果有人仍然想知道这一点,您可以使用connection.batch()来执行批量查询。

connection.beginTransaction();
connection.query("INSERT INTO BASKET(customerId) values (?)", [1], (err, res) => {
   //must handle error if any
   const basketId = res.insertId;
   try {
     connection.batch("INSERT INTO basket_item(basketId, itemId) VALUES (?, ?)",[
         [basketId, 100],
         [basketId, 101],
         [basketId, 103],
         [basketId, 104],
         [basketId, 105]
     ]);
     //must handle error if any
     connection.commit();
     } catch (err) {
     connection.rollback();
     //handle error
     }
});

https://github.com/MariaDB/mariadb-connector-nodejs/blob/master/documentation/batch.md

关于javascript - 如何使用nodejs在mariadb中批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37719975/

相关文章:

javascript - 无法读取reactjs应用程序中未定义的属性 'forEach'

javascript - 如何从 longPolling 运行另一个 JS 方法?

Javascript 在 Windows 上按预期工作,在 Linux 上出错

javascript - Router.use 需要中间件功能?

mysql - 让自己成为 MySQL 中的另一个 super 用户,但仅限于通过 unix 套接字连接时

javascript - 在 HTML Canvas 上绘制线宽连续变化的线条

javascript - 是否有一种简单的方法来将if语句压缩为一个函数以检查参数?

node.js - this.parent.acquire 不是预处理语句的函数

mysql - MariaDB 不会更改数据库的排序规则

java - 无法从 Java Netbeans 连接到 Mariadb