MySql.Data.MySqlClient.MySqlException: ''field list' 中的未知列 'Cantidad''

MySql.Data.MySqlClient.MySqlException: 'Unknown column 'Cantidad' in 'field list''

我需要更新我的库存,每当我们购买产品时,该数量需要添加到我的库存中。 我正在通过 mysql 进行此更新,我有两个表“detalledecompra”我们购买产品和“productos”这将是库存,它包含产品编号、描述、可用数量等。 我想过创建这个触发器:

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,我的 visual studio 说

MySql.Data.MySqlClient.MySqlException: 'Unknown column 'Cantidad' in 'field list''

我应该如何修改触发器,以便每当我们购买东西时,该数量就会添加到产品中 "StockActual"?

您收到该错误的原因是您没有加入 UPDATE 查询中的 detalledecompra table。也就是说,在这种情况下您不需要使用 table。

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

这应该适合你:

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

这里有一些关于 MySQL 触发器和 NEWOLD 关键字的文档:MySQL Docs