pg-promise UPDATE returns 成功 return 代码但实际上没有更新 table

pg-promise UPDATE returns success return code but actually not updating the table

我正在尝试使用 pg-promise 助手更新 pgsql table 中的一行。查询成功执行并且 returns 成功 return 代码。但这些变化并未反映在 table 中。我应该在更新查询后发出 COMMIT 还是通常会自动提交?

const condition = pgp.as.format(` WHERE key = '${value}'`, putData);
const table = new pgp.helpers.TableName({ table: 'mytab', schema: 'myschema'});
const query = pgp.helpers.update(putData, [updateCols], table) + condition;

await db.none(query).then(() => {
  status = 200;
  response['status'] = 'success';
})
.catch(error => {
  status = 500;
  response['status'] = 'failed';
  response['error'] = error.message;
  response['errorCode'] = error.code;
});

不更新对应记录的原因是where条件输入无效。 Spaces/Null 传递到 WHERE 条件。所以它 returns 没有更新任何东西就成功了。现在代码已经更正并且工作正常。

其次(与问题无关),我在查询格式化程序中使用了 ES6 字符串格式。根据@vitaly-t的评论,我将其更改如下。

pgp.as.format('WHERE key = ', [keyValue]);

pgp.as.format('WHERE key = ${keyValue}', {keyValue});