gpt4 book ai didi

mysql - 如何修复 AFTER UPDATE 触发器

转载 作者:行者123 更新时间:2023-11-29 15:55:47 25 4
gpt4 key购买 nike

我为我的网站创建了一个用户点系统。该表如下所示:

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 ;

此触发器不起作用。为什么?

最佳答案

您不能通过该表上的触发器修改该表的内容(触发器正在操作的行除外,但不能以这种方式);在这种情况下,您需要的是一个 BEFORE UPDATE 触发器,您只需在其中

SET NEW.total = NEW.article + NEW.gallery + NEW.description;

您可以使用NEWOLD来访问(并在BEFORE触发器中修改)负责触发触发器的行的字段值。

关于mysql - 如何修复 AFTER UPDATE 触发器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56467107/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com