pg-promise 更新行数

pg-promise number of updated rows

我正在使用 pg-promise NodeJS 模块。在某个时候,我正在更新我的一个数据库 table。我想知道查询更新了多少行,可以吗?

下面是我的部分代码:

var queryText = "UPDATE public.mytable SET whatever =  WHERE criteria1= AND criteria2=;",
    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);
    });

谢谢!

我是 pg-promise. In order to access the advanced query-result details, you need to execute the query via method 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。您不需要在 .then 内使用 resolve(result) 或在 .catch 内使用 reject(err),因为 pg-promise 的所有查询方法已经 return 承诺。

更新

较新的 ES7 语法:

const {rowCount} = await db.result(query, values);