sql >> データベース >  >> RDS >> PostgreSQL

node.jsでpostgres(pg)クライアント接続を閉じる

    pg-promise のような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つのクエリで実行する必要があります;)

    その他の例 をご覧ください。 。




    1. 特定のMySQLテーブルが占有しているディスク容量をどのように判断できますか?

    2. 動的メニューの作成に支援が必要

    3. 長い型の数値を使用してvarchar型をフィルタリングすると、MySQLは余分なレコードを返します

    4. ORA-14551:クエリ内でDML操作を実行できません