首页 > 解决方案 > MySql.Data.MySqlClient.MySqlException:''字段列表'中的未知列'Cantidad''

问题描述

我需要更新我的库存,每当我们购买产品时,该数量都需要添加到我的库存中。我正在通过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”中?

标签: c#mysqlvisual-studiostock

解决方案


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

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

这应该适合你:

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

这是一些关于 MySQL 触发器和NEWandOLD关键字的文档:MySQL Docs


推荐阅读