我正在做一個觸發器,當我更新一個表時,同一張表更新一個字段。 觸發是:如何觸發一個表並更新同一個表?
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