node-postgres 一条语句更新多条数据
   1 分钟阅读

单条更新到是

1
UPDATE accounts SET balance=$2,count=$3 WHERE account=$1

但是这条语句在 commit 这种批量提交的时候就非常尴尬了;

批量提交的可以看 commit使用教程 ,这种方式在性能方面会比较好

代码如下

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
let batchUpdateSql=`
    update
        transaction
    set
        is_free=tmp.is_free ,
        is_stable=tmp.is_stable ,
        is_fork=tmp.is_fork ,
        is_invalid=tmp.is_invalid ,
        is_fail=tmp.is_fail ,
        is_on_mc=tmp.is_on_mc
    from
        (values " +
            "('B5956299E1BC73B23A56D4CC1C58D42F2D494808FBDEE073259B48F571CCE97C',false,false,false,false,false,false)," +
            "('5F2B6FA741A33CDD506C5E150E37FCC73842082B24948A7159DFEB4C07500A08',false,false,false,false,false,false)" +
        ")
    as tmp
            (hash,is_free,is_stable,is_fork,is_invalid,is_fail,is_on_mc)
    where
        transaction.hash = tmp.hash
    `;

pgclient.query(batchUpdateSql, (res) => {
    //ROLLBACK
    console.log(res);
});
本文目录