Я пытаюсь обновить строку в таблице pgsql с помощью помощников pg-prom. Запрос выполняется успешно и возвращает успешный код возврата. Но изменения не отражаются в таблице. Должен ли я выдавать 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;
});
BEGIN
транзакция, все операторы в Postgres находятся в режиме автоматической фиксации. - person Bergi   schedule 16.08.2020WHERE
состояние выглядит неудачным. Также посмотрите журналы вашей базы данных. - person Bergi   schedule 16.08.2020putData.value
? Какой тип столбцаkey
? Не могли бы вы распечатать полныйquery
и разместить его здесь? - person Bergi   schedule 16.08.2020pgp.as.format('WHERE key = '${value}'', putData);
выглядит неправильно, вы не должны использовать строки ES6 сformat
и тем более конкатенацией строк. Обработайте событие query, чтобы увидеть, что вы на самом деле выполняете. . - person vitaly-t   schedule 16.08.2020