我正在使用pg-promise NodeJS模块.在某些时候,我正在更新我的数据库表之一.我想知道查询已更新了多少行,是否可能? 以下是我的代码的一部分: var queryText = "UPDATE public.mytable SET whatever
以下是我的代码的一部分:
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);
});
谢谢!
我是 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 => {
});
附:你不需要在.then中使用resolve(result)或者在.catch中拒绝(err),因为pg-promise的所有查询方法都已经返回promises.
