c# - 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”中?
解决方案
您收到该错误的原因是您没有加入UPDATE
查询中的 detalledecompra 表。也就是说,在这种情况下,您不需要使用该表。
当您在 上创建触发器时INSERT
,您的触发器可以访问NEW
关键字,从而可以访问正在插入的值。因此,您实际上不需要直接在触发函数中访问 detalledecompra。
这应该适合你:
UPDATE productos
SET productos.StockActual = StockActual + NEW.Cantidad
WHERE productos.CodigoProducto = NEW.CodigoProducto;
这是一些关于 MySQL 触发器和NEW
andOLD
关键字的文档:MySQL Docs
推荐阅读
- c# - 查询字符串参数的通用过滤
- angularjs - 数据目标可以与路由器一起使用吗
- javascript - 承诺“终于”不起作用
- python - 可以在纱线客户端模式下启动 Dask 吗?
- postgresql - 当 count 与 string_agg 一起使用时在 postgres 中不正确计数?
- java - spring boot 1.5.x /hystrix.stream 执行器不工作
- c++ - libuv - 在没有多线程的情况下限制空闲事件的回调率而不阻塞线程
- npm - 如何查看 node_modules 依赖树?
- powerbi - 在查询编辑器(PowerBI 或 PowerQuery)中引用另一个表
- python - 了解 opencv 的 decomposeHomographyMat 输出