Приложение, созданное с помощью Express и Postgres.
Я использую body-parser для получения значений, разделенных запятыми, из формы.Обычно такой запрос будет работать для обновления одного продукта в моей таблице:
const sqlProdOrder = 'UPDATE product_index SET product_ordered = $2 WHERE product_id = $1';
Однако сейчас я пытаюсь обновить несколько строк одновременно с разными данными.Я видел предыдущий вопрос и пришел к такому выводу, но все еще получаю ошибку запроса:
const sqlProdOrder = "WITH sample (product_id, product_ordered) AS ( SELECT * FROM unnest(ARRAY['$2'], ARRAY['$1'])) UPDATE product_index SET product_ordered = s.ordered FROM sample s WHERE product_id = s.id";
Вот сообщение с выражением:
router.post('/order', auth.check.bind(auth), (req, res) => {
const paramsProdOrderId = [req.body.product_id, req.body.product_ordered];
db.query(sqlProdOrder, paramsProdOrderId).then((results) => {
if (results.rowCount === 0) {
res.redirect('/products');
return;
}
res.redirect('/');
})
.catch((err) => {
res.redirect('/error/404')
});
});
Конечно, используя оба запроса sqlProdOrder, я получаю отправку в /error/404.
Я записал в консоль данные body-parser и все прошло нормально,Я действительно, что второй пример sqlProdOrder будет работать.
Я был бы очень признателен за помощь в этом.Я считаю, что мне нужно использовать unnest, но я действительно не знаю, как его использовать, как вы можете видеть на моем примере.