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 触发器和 NEW
和 OLD
关键字的文档:MySQL Docs
我需要更新我的库存,每当我们购买产品时,该数量需要添加到我的库存中。
我正在通过 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 触发器和 NEW
和 OLD
关键字的文档:MySQL Docs