【发布时间】:2021-06-30 00:43:08
【问题描述】:
我有两个表“产品”和“股票”。产品表将包含所有产品。在库存表中,我每次都将产品库存保存为一个新条目。
我有两种产品。 “1”类型的产品将有库存作为数字,“0”类型的产品将有库存作为重量。因此,在 products 表中,我创建了两列“stock_weight(保持在 stock 表中输入的总重量)”和“pieces(保持在 stock 表中输入的总数量)”。
为此,我在 stock 表上创建了一个触发器,每当我将新记录插入此表时,它将执行以更新 products 表中的总重量或数量(件)。下面是触发器的代码:
BEGIN
DECLARE product_type tinyint default 0;
SET product_type = (Select product_type from products where id = NEW.product_id);
IF (product_type = 0) THEN
UPDATE products set stock_weight = stock_weight + NEW.net_weight where id = NEW.product_id;
ELSE
UPDATE products set stock_pieces = stock_pieces + NEW.pieces where id = NEW.product_id;
END IF;
END
但是在任何产品的库存表中插入新记录后,产品表中没有任何更新。我已经调试了触发器并且触发器正在执行,但产品表中没有任何更新。
谁能告诉我我错过了什么以及我做错了什么?
【问题讨论】:
-
看起来应该更新产品 - 请添加创建触发器语句..
-
感谢您的回复。是的,我已经正确创建了触发器。我刚刚分享了我在触发器中编写的查询/逻辑。
-
10 + null = null 我建议你在有可能为 null 的地方合并。