如何使用MySQL Trigger更新'items'表中的数量字段,数量为quantity_delivered

时间:2017-09-25 11:20:13

标签: mysql triggers

请求<中的 quantity_delivered 时,如何使用MySQL触发器更新项目表中 quantity-quantity_delivered 数量字段/ strong>表格已更新?

以下是我的查询,我已经过测试,但我发现它没有更新,有人可以帮我吗?

DELIMITER $$
CREATE TRIGGER items_update AFTER UPDATE ON requests
FOR EACH ROW
BEGIN
    UPDATE items 
        SET items .quantity = items.quantity - requests.quantity_delivered
        WHERE items .item_id = requests.item_id;
END;
$$
DELIMITER ;

2 个答案:

答案 0 :(得分:1)

我已经自己解决了这个问题并且为我工作感谢All!

DELIMITER $$
CREATE TRIGGER `quantityTrigger` AFTER UPDATE ON `requests` FOR EACH ROW BEGIN
UPDATE items i
SET i.quantity=i.quantity-NEW.quantity_delivered
 WHERE i.item_id=NEW.item_id;
END
$$
DELIMITER ;

答案 1 :(得分:0)

你应该使用新的。像你这样的触发器中的值

drop trigger if exists items_update;
DELIMITER $$
CREATE TRIGGER items_update AFTER UPDATE ON requests
FOR EACH ROW
BEGIN
    UPDATE items 
        SET items.quantity = items.quantity - new.quantity_delivered
        where items.item_id = new.item_id;
END;
$$
DELIMITER ;

另外,这应该是插入后的触发器吗?