PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Insertion en masse dans Postgres avec brianc/node-postgres

J'ai fait une recherche pour la même question, mais je n'ai pas encore trouvé de solution. Avec la bibliothèque asynchrone, il est très simple d'utiliser la requête plusieurs fois et de faire la gestion des erreurs nécessaire.

Peut-être que cette variante de code aide. (pour insérer 10 000 petits objets json dans une base de données vide, cela a pris 6 secondes).

Christophe

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);
})