当我修改出库表中的state = 1时,将出库的物资数量从库存表中减去。
请问用MySQL触发器的话,应该怎么写呢?我要怎么确定减掉数量的物资是我出库的物资呢
CREATE TRIGGER update_inventory AFTER UPDATE ON out_table
FOR EACH ROW
BEGIN
IF NEW.state = 1 AND OLD.state != 1 THEN
UPDATE inventory_table
SET quantity = quantity - NEW.quantity
WHERE item_id = NEW.item_id;
END IF;
END;
这样?如果你还需要确定减去数量的物资是您出库的物资,需要在出库表中添加一个唯一标识符(如出库单号),并在触发器中使用它来匹配相应的库存记录。
不知道我写的是不是你想表达的意思
不要这样做
所谓库存表,其实就等于入库物资减掉出库物资
一个视图就可以了,而不应该是个冗余的数据
你搞两套,万一写入失败,就导致两表数据不一致
出库的物资要再退库怎么办,到处是麻烦