MySql.Data.MySqlClient.MySqlException:“字段列表”中的“未知列“ Cantidad””

时间:2019-05-10 16:53:37

标签: c# mysql visual-studio stock

我需要更新库存,每当我们购买产品时,都需要将该数量添加到我的库存中。 我正在通过 mysql 进行此更新,我有两个表“ detalledecompra”用于购买产品,而“ productos”则是库存,其中包含产品ID ,说明,数量等。 我考虑过要创建此触发器:

CREATE TRIGGER UPDATESTOCK AFTER INSERT ON detalledecompra
FOR EACH ROW

BEGIN

UPDATE productos
SET productos.StockActual = StockActual + detalledecompra.Cantidad 
  WHERE productos.CodigoProducto = detalledecompra.CodigoProducto;

END;

但是我的视觉工作室说,它找不到列detalledecompra.Cantidad

  

MySql.Data.MySqlClient.MySqlException:中的“未知列'Cantidad”   “字段列表”

我应该如何修改触发器,以便每当我们购买商品时,都会将该数量添加到“ StockActual”产品中?

1 个答案:

答案 0 :(得分:3)

出现该错误的原因是因为您没有加入UPDATE查询中的detalledecompra表。也就是说,在这种情况下,您无需使用该表。

INSERT上创建触发器时,触发器可以访问NEW关键字,该关键字可以访问要插入的值。因此,您实际上不需要直接在触发函数中访问detalledecompra。

这应该对您有用:

UPDATE productos
SET productos.StockActual = StockActual + NEW.Cantidad 
WHERE productos.CodigoProducto = NEW.CodigoProducto;

以下是有关MySQL触发器以及NEWOLD关键字的一些文档:MySQL Docs