我为我的网站创建了一个用户点系统。该表如下所示:
user_id name article gallery description total
------------------------------------------------------------
1 joe 7 3 0 10
2 hary 3 5 5 13
3 ana 1 1 2 4
我需要一个AFTER UPDATE触发器,当列,文章,库或说明中的值更改时,它将使列中的更新SUM总计
DELIMITER $$
CREATE TRIGGER total_trg
AFTER UPDATE point_system FOR EACH ROW
BEGIN
UPDATE point_system SET total = (article + gallery + description) FROM point_system WHERE user_id = NEW.user_id;
END
$$
DELIMITER ;
此触发器不起作用。为什么?
答案 0 :(得分:0)
您不能通过该表上的触发器修改该表的内容(该触发器所操作的行除外,但不能以此方式);在这种情况下,您需要的是BEFORE UPDATE
触发器,您只需
SET NEW.total = NEW.article + NEW.gallery + NEW.description;
您使用NEW
和OLD
访问(并在触发器之前进行修改)负责触发触发器的行的字段值。