pg-promise更新行数

时间:2017-06-26 15:18:12

标签: node.js pg-promise

我正在使用pg-promise NodeJS模块。在某些时候,我正在更新我的数据库表之一。我想知道查询已更新了多少行,是否可能?

以下是我的代码的一部分:

var queryText = "UPDATE public.mytable SET whatever = $1 WHERE criteria1=$2 AND criteria2=$3;",
    queryParam = [
      value1,
      value2,
      value3
    ];

    postgres.none(queryText, queryParam)
    .then((value) => {
      // how can I know at this point how many rows have been updated
      resolve(result);

    })
    .catch(err => {
      // it doesn't go here when zero row has been updated
      reject(err);
    });

谢谢!

1 个答案:

答案 0 :(得分:8)

我是pg-promise的作者。您需要通过方法result执行查询,以便您可以访问高级查询结果详细信息,特别是rowCount

db.result(query, values, r => r.rowCount)
    .then(count => {
       // count = number of rows affected (updated or deleted) by the query
    })
    .catch(error => {
    });

P.S。您无需在resolve(result)内使用.thenreject(err)内使用.catch,因为pg-promise的所有查询方法都已返回承诺。