我想在MySQL中为下表创建一个触发器,这样如果出现次数的属性大于100,则状态属性更新为“流行”。
表的名称是trigger
Repo_ID |Occurences |Status
1 | 50 | Normal
2 | 70 | Normal
3 | 190 | Popular
我尝试过以下操作。它不起作用。有什么建议吗?
CREATE TRIGGER `A` after update
ON `trigger`
FOR EACH ROW BEGIN
IF (new.occurence > 100) THEN
SET new.STATUS = "popular";
ELSE SET new.STATUS = "normal";
END IF;
END
最佳答案
您想要一个before更新触发器:
CREATE TRIGGER `A` before update ON `trigger`
FOR EACH ROW
BEGIN
SET new.STATUS = (CASE WHEN new.occurences > 100 THEN 'popular' ELSE 'normal' END);
END;
我还删除了 IF
,因为 CASE
看起来更简洁。
关于mysql - SQL触发器更新同一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47381466/