PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Masseneinfügung in Postgres mit brianc/node-postgres

Ich habe nach der gleichen Frage gesucht, aber noch keine Lösung gefunden. Mit der async-Bibliothek ist es sehr einfach, die Abfrage mehrmals zu verwenden und die notwendige Fehlerbehandlung durchzuführen.

Vielleicht hilft diese Codevariante weiter.(Für das Einfügen von 10.000 kleinen JSON-Objekten in eine leere Datenbank hat es 6 Sekunden gedauert).

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