简体   繁体   English

mysql tigger怎么了

[英]whats wrong with mysql tigger

This is the trigger im trying to add. 这是我尝试添加的触发器。 I keep getting "Updating of NEW row is not allowed in after trigger" 我不断收到“触发器触发后不允许更新NEW行”

DELIMITER $$

DROP TRIGGER IF EXISTS leaderboard.badges_AUPD$$
USE leaderboard$$
CREATE TRIGGER `badges_AUPD` AFTER UPDATE ON `badges` FOR EACH ROW

set new.badgelevel := case when badgepercent < 50 then 0
                    when badgepercent < 75 then 1
                    else 2 end;
    $$
DELIMITER ;

Your trigger should be before update since after update you cant set any column of the same table, and also missing the begin part 您的触发器应该before update因为before update之后您无法设置同一表的任何列,并且也缺少begin部分

DELIMITER $$
DROP TRIGGER IF EXISTS leaderboard.badges_AUPD$$
USE leaderboard$$
CREATE TRIGGER `badges_AUPD` BEFORE UPDATE ON `badges` 
FOR EACH ROW
BEGIN
 if new.badgepercent < 50 then
   set new.badgelevel = 0 ;
 elseif new.badgepercent < 75 then
   set new.badgelevel = 1 ;
 else 
   set new.badgelevel = 2;
 end if;

end;$$

delimiter ;

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM