使用 Node Postgres 更新多个表

Updating Multiple Tables using Node Postgres

我有两个 table,一个存储客户订单,另一个存储特定订单的商品。我正在尝试按如下方式同时更新这两个 table:

const updateCustOrder = 'UPDATE orders SET customer=, due_date= WHERE order_id=';
const updateItem = 'UPDATE items SET order_id=, quantity=, cost= WHERE item_id=';

Promise.all([
   pool.query(updateCustOrder, [customer, due_date, order_id]),
   pool.query(updateItem, [order_id, qty, cost, item_id])
]).then(function() {
   response.status(201).send('Successfully Updated');
}).catch(function (e) {
   response.status(500).send('Updated failed');
});

属性 order_id 是订单 table 中的主键和项目 table 中的外键。我 运行 遇到的问题是订单 table 中的值已成功更新,但项目 table 中的值未更新。

你有没有仔细研究过 knex?它可以帮助完成更痛苦的 SQL 任务。不过,这并不能完全回答您的问题。

您可以尝试使用 async/await

我承认我对 Node.js 有点生疏。但是,这样的事情应该有效:

async function sqlCalls() {
    const updateCustOrder = 'UPDATE orders SET customer=, due_date= WHERE order_id=';
    const updateItem = 'UPDATE items SET order_id=, quantity=, cost= WHERE item_id=';


    const first = await pool.query(updateCustOrder, [customer, due_date, order_id]);
    const second = await pool.query(updateItem, [order_id, qty, cost, item_id])

    // Use If/Else for error handling
}