sql >> Database >  >> RDS >> PostgreSQL

Postgres (pg)-clientverbinding in node.js . sluiten

Een op beloften gebaseerde interface zoals pg-promise is de juiste keuze:

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

Het bovenstaande voorbeeld doet precies waar je om hebt gevraagd, plus het maakt gebruik van een transactie. Maar in werkelijkheid wil je het allemaal in één query doen, om prestatieredenen;)

Zie meer voorbeelden .




  1. MySQL:rijen selecteren waar een kolom nul is

  2. DATEFROMPARTS() Voorbeelden in SQL Server (T-SQL)

  3. Oracle-zoektekst met niet-Engelse tekens

  4. Een database ontwerpen voor een online banenportaal