programing

nodejs를 사용하여 Inmariadb를 일괄 삽입하는 방법은 무엇입니까?

bestcode 2022. 9. 24. 12:43
반응형

nodejs를 사용하여 Inmariadb를 일괄 삽입하는 방법은 무엇입니까?

코드를 실행하려고 할 때마다 열 개수가 일치하지 않음을 나타냅니다.

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

제가 알기로는 요즘 mariaDB 모듈은 node.js의 벌크 삽입을 지원하지 않았습니다.

https://mariadb.com/kb/en/library/connectornodejs-pipelining/

언급URL : https://stackoverflow.com/questions/37719975/how-to-do-bulk-insert-in-mariadb-using-nodejs

반응형