在nodejs的一个函数中执行两个不同的Sql查询

vuktfyat  于 2022-11-03  发布在  Node.js
关注(0)|答案(2)|浏览(250)

我有一个包含2个表的查询****第一个表是prodstock表,第二个表是stockmaster因此,现在我想使用函数执行查询,因为当我调用一个函数时,我想通过两个查询更新两个表,但我不能这样做,我将在下面更广泛地说明这一点

这是库存主管表

这是产品库存表

下面是函数的代码

export const postStock = (body) => {
    let sql = ` INSERT INTO stockmaster (stocknum, cat_id, user_id, dyenumber, stockQty, price,stockform, remark) VALUES ('${body.stocknum}', '${body.cat_id}', '${body.user_id}', '${body.dyenumber}', '${body.stockQty}', '${body.price}', '${body.stockform}', '${body.remark}')`;
    return sql;   
};

export const updateprodStock = (cat_id, dyenumber, stockQty) => {
    let sql = `UPDATE prodstock JOIN stockmaster ON prodstock.cat_id = '${cat_id}' AND prodstock.dyenumber = '${dyenumber}' SET prodstock.total_qty = prodstock.total_qty + '${stockQty} `
    return sql}

这里两个函数都被调用

static stock = (req, res) => {
        const { cat_id, dyenumber, stockQty } = req.body;
        connection.query(postStock(req.body), (err, result) => {
            if (err) {
                throw new Error(err);
            } else {
                connection.query(updateprodStock(cat_id, dyenumber, stockQty))
                res.status(200).json({
                    code: 1,
                    msg: "success",
                    data: result
                })
            }
        })
    }

因此,当我执行poststock功能时,我还想执行updateprodStock,以便在一个功能中更新库存,并更新总数量,但不工作,是否有人可以帮助?

nle07wnf

nle07wnf1#

在我看来,这条线并不完美:

let sql = 'UPDATE prodstock JOIN stockmaster ON prodstock.cat_id = '${cat_id}' AND prodstock.dyenumber = '${dyenumber}' SET prodstock.total_qty = prodstock.total_qty + '${stockQty} '

它将是(添加变量后):

UPDATE prodstock JOIN stockmaster ON prodstock.cat_id = 3 AND prodstock.dyenumber = 2 SET prodstock.total_qty = prodstock.total_qty + 1

你也可以考虑使用绑定变量来代替文字。无论如何,这个更新应该看起来像这样:

UPDATE prodstock 
SET total_qty = prodstock.total_qty + 1
where prodstock.cat_id = 3 AND prodstock.dyenumber = 2
qhhrdooz

qhhrdooz2#

好了,这里我自己解决了这个问题,我必须调用第一个查询下的另一个查询使用函数,现在它看起来像下面,并成功地工作如下:-

static stock = (req, res) => {
  const { cat_id, dyenumber, stockQty } = req.body;
  connection.query(postStock(req.body), (err, result) => {
    if (err) {
      throw new Error(err);
    }
    connection.query(updateprodStock(cat_id, dyenumber, stockQty), (err, result) => {
      if (err) {
        console.log(err)
      }
      res.status(200).send("Product Stock updated successfully")
    })
    res.status(200).json({
      code: 1,
      msg: "success",
      data: "Stock arrived successfully"
    })
  })
}

我只是在旧函数中调用了另一个查询,它解决了所有问题。

相关问题