PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Inserção em massa no Postgres com brianc/node-postgres


Fiz uma busca pela mesma dúvida, mas ainda não encontrei solução. Com a biblioteca assíncrona é muito simples usar a consulta várias vezes, e fazer o tratamento de erros necessário.

Pode ser que essa variante de código ajude. (para inserir 10.000 pequenos objetos json em um banco de dados vazio, levou 6 segundos).

Christoph
function insertData(item,callback) {
  client.query('INSERT INTO subscriptions (subscription_guid, employer_guid, employee_guid)
       values ($1,$2,$3)', [
        item.subscription_guid,
        item.employer_guid,
        item.employee_guid
       ], 
  function(err,result) {
    // return any err to async.each iterator
    callback(err);
  })
}
async.each(datasetArr,insertData,function(err) {
  // Release the client to the pg module
  done();
  if (err) {
    set_response(500, err, res);
    logger.error('error running query', err);
    return console.error('error running query', err);
  }
  logger.info('subscription with created');
  set_response(201);
})