PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

Zbiorcze wstawianie do Postgresa za pomocą brianc/node-postgres

Szukałem tego samego pytania, ale nie znalazłem jeszcze rozwiązania. Dzięki bibliotece asynchronicznej bardzo łatwo jest użyć zapytania kilka razy i wykonać niezbędną obsługę błędów.

Może ten wariant kodu pomaga.(wstawienie 10 000 małych obiektów json do pustej bazy danych zajęło 6 sekund).

Krzysztof

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Railsy wszystkich użytkowników w grupie z płcią męską

  2. Zapytanie o połączenie Rails

  3. Czy ma to wpływ na wydajność, jeśli tabela zawiera wiele nieużywanych/niewybranych kolumn?

  4. Blokada i transakcja w postgresie, która powinna blokować zapytanie

  5. Ogólny wyzwalacz do ograniczania wstawiania na podstawie liczby