私は、テーブルを更新すると、同じテーブルがフィールドを更新するというトリガを行っています。 トリガーがある:テーブルをトリガーして同じテーブルを更新するにはどうすればよいですか?
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サーバのバージョンに対応するマニュアルをチェックして、正しい構文を使用して ''の近くで使用してください。
ありがとうございました!
ねえを使用して試すことができます!トリガーから関数を呼び出さないでください理由は次のとおりです:http://dba.stackexchange.com/questions/10657/call-a-stored-procedure-from-a-trigger –
'updateUser(" rank 1 " 、NEW.ID); 'あなたはちょうど' SET NEW.rank = 'rank 1';を使用することができます; –
私は区切り文字を使うべきです – jophab