我正在做一个触发器,当我更新一个表时,同一张表更新一个字段。 触发是:如何触发一个表并更新同一个表?
CREATE TRIGGER update_user
AFTER UPDATE
ON users
FOR EACH ROW
BEGIN
IF (NEW.totalPoints > 0 AND NEW.totalPoints < 200)
THEN
updateUser("rank 1", NEW.ID);
ELSEIF (NEW.totalPoints > 200 AND NEW.totalPoints < 400)
THEN
updateUser("rank 2", NEW.ID);
END IF;
END;
和程序是:
CREATE PROCEDURE updateUser(newRank VARCHAR(100), IDUser INT)
BEGIN
UPDATE users SET rank = newRank WHERE ID = IDUser;
END;
我的错误是在创建过程:
1064 - 你在你的SQL语法错误;检查与您的MySQL服务器版本相对应的手册,以便在第3行使用正确的语法
感谢您的帮助!
嘿!下面是你不应该从触发器调用函数的原因:http://dba.stackexchange.com/questions/10657/call-a-stored-procedure-from-a-trigger –
而不是'updateUser(“rank 1” ,NEW.ID);''你可以使用'SET NEW.rank ='rank 1';' –
我thik你应该使用分隔符 – jophab