PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Затваряне на клиентска връзка на postgres (pg) в node.js

Интерфейс, базиран на обещания, като pg-promise е правилният начин:

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

Примерът по-горе прави точно това, което поискахте, плюс това използва транзакция. Но в действителност ще искате да направите всичко в една заявка от съображения за ефективност;)

Вижте още примери .




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. настройка на PostgreSQL с Laravel в MAMP

  2. Проста система за влизане/упълномощаване, използваща Dancer и Postgres

  3. Вземете размера на всички бази данни в PostgreSQL (psql)

  4. Постепенно архивиране на PostgreSQL и възстановяване в момента

  5. Динамични колони на таблица, базирани на потребителските предпочитания