MySQL After Update触发不同的表

时间:2014-12-01 01:59:12

标签: mysql triggers

我正在尝试创建一个触发器,在用户完成任务后更新整体用户分数。我有两个不同的表,'任务'和'用户'。更新任务表后,我想将获取的分数发送到users表,并更新相应用户的users.score。我在任务表中有mid,scoreacquired和user_uid,在用户表中有uid,得分。这就是我到目前为止所做的:

DROP TRIGGER IF EXISTS updateScore;
delimiter |
CREATE TRIGGER updateScore 
AFTER UPDATE ON missions
FOR EACH ROW
BEGIN
   UPDATE users SET score = score + missions.scoreacquired 
   WHERE users.uid = missions.user_uid;
END;
|
delimiter;

它允许我创建触发器但是当我触发它时,它在BEGIN之后的两行中给出了一个错误。有什么建议吗?

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

我希望在此过程中看到new。像这样:

DROP TRIGGER IF EXISTS updateScore;
delimiter |
CREATE TRIGGER updateScore 
AFTER UPDATE ON missions
FOR EACH ROW
BEGIN
   UPDATE users
       SET score = score + new.scoreacquired 
       WHERE users.uid = new.user_uid;
END;
|
delimiter;