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);
我正在使用 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);