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

Zamykanie połączenia klienta postgres (pg) w node.js

Interfejs oparty na obietnicach, taki jak pg-promise jest droga do zrobienia:

var bluebird = require('bluebird');
var pgp = require('pg-promise')({
    promiseLib: bluebird
});
var db = pgp(/*connection details*/);

db.tx(t => {
    // BEGIN executed
    return t.map('SELECT id, chain FROM mytable where state_ready = $1 and transaction_id = $2', [true, 123], a => {
        var chain = data.chain;
        var pg_record = data.id;
        return t.none('UPDATE mytable SET transaction_id = $1::text where id=$2::int', [transactionHash, pg_record]);
    }).then(t.batch); // settling all internal queries
})
    .then(data => {
        // success, COMMIT executed
    })
    .catch(error => {
        // error, ROLLBACK executed
    })
    .finally(pgp.end); // shuts down the connection pool

Powyższy przykład robi dokładnie to, o co prosiłeś, a ponadto wykorzystuje transakcję. Ale w rzeczywistości będziesz chciał zrobić to wszystko w jednym zapytaniu, ze względu na wydajność;)

Zobacz więcej przykładów .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wybierz losowy wiersz dla każdej grupy

  2. PostgreSQL 11:recenzenci poprawek do partycjonowania

  3. Połącz aplikację na iPhone'a z PostgreSQL za pomocą Libpq

  4. Jak wymienić stół w Postgresie?

  5. Jak zwrócić wynik funkcji postgresql w c#? Wyjście konsoli puste