我想在MySQL中为下表创建一个触发器,这样如果出现的属性大于100,则状态属性将更新为“popular”。
表格的名称为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
答案 0 :(得分:2)
您需要之前的更新触发器:
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
似乎更简洁。