为什么我的触发器中有这个错误? MySQL
Why I have this error in my trigger? MySQL
我正在创建一个 MySQL 数据库,我想创建一个触发器来更改销售后可用的库存量,但我收到一个错误
这是触发器的代码
DROP TRIGGER IF EXISTS tr_inventario;
CREATE TRIGGER tr_inventario AFTER INSERT ON factura FOR EACH ROW
UPDATE producto INNER JOIN factura ON producto.IdProducto=factura.IdProducto
SET producto.Invenatario=producto.Invenatario-factura.Cantidad
WHERE producto.IdProducto=factura.IdProducto;
这是我要执行的 INSERT
INSERT INTO factura(FechaVenta, NombreCliente, IdProducto, IdEmpleado, Cantidad) VALUES (now(), 'María Guadalupe',3, 2, 2);
这是我得到的错误
Error Code: 1048. Column 'Invenatario' cannot be null
relational table
你不需要 JOIN
:
DELIMITER $$
CREATE TRIGGER tr_inventario AFTER INSERT ON factura FOR EACH ROW
BEGIN
UPDATE producto p
SET p.Invenatario = p.Invenatario - new.Cantidad
WHERE p.IdProducto = new.IdProducto;
END;
我正在创建一个 MySQL 数据库,我想创建一个触发器来更改销售后可用的库存量,但我收到一个错误
这是触发器的代码
DROP TRIGGER IF EXISTS tr_inventario;
CREATE TRIGGER tr_inventario AFTER INSERT ON factura FOR EACH ROW
UPDATE producto INNER JOIN factura ON producto.IdProducto=factura.IdProducto
SET producto.Invenatario=producto.Invenatario-factura.Cantidad
WHERE producto.IdProducto=factura.IdProducto;
这是我要执行的 INSERT
INSERT INTO factura(FechaVenta, NombreCliente, IdProducto, IdEmpleado, Cantidad) VALUES (now(), 'María Guadalupe',3, 2, 2);
这是我得到的错误
Error Code: 1048. Column 'Invenatario' cannot be null
relational table
你不需要 JOIN
:
DELIMITER $$
CREATE TRIGGER tr_inventario AFTER INSERT ON factura FOR EACH ROW
BEGIN
UPDATE producto p
SET p.Invenatario = p.Invenatario - new.Cantidad
WHERE p.IdProducto = new.IdProducto;
END;