为什么我的触发器中有这个错误?mysql数据库

x6yk4ghg  于 2021-07-29  发布在  Java
关注(0)|答案(1)|浏览(297)

我正在创建一个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 INTO factura(FechaVenta, NombreCliente, IdProducto, IdEmpleado, Cantidad) VALUES (now(), 'María Guadalupe',3, 2, 2);

这就是我得到的错误

Error Code: 1048. Column 'Invenatario' cannot be null

关系表

1zmg4dgp

1zmg4dgp1#

你不需要一个 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;

相关问题