gpt4 book ai didi

mysql - 如何使用Mysql触发 'leave', 'switch'命令

转载 作者:行者123 更新时间:2023-11-29 00:45:46 28 4
gpt4 key购买 nike

我有如下例子中的触发器:

BEFORE UPDATE ON icharts_user_stats FOR EACH ROW BEGIN

IF (NEW.col1> OLD.col1
OR NEW.col2 > OLD.col2) THEN
SET NEW.col3 = NEW.col3+1;
SET NEW.col4 = NEW.col4+1; END IF;

IF (NEW.col5> OLD.col5
OR NEW.col6 > OLD.col6) THEN
SET NEW.col7 = NEW.col7+1; END IF;

IF (NEW.col8> OLD.col8
OR NEW.col9 > OLD.col9) THEN
SET NEW.col10 = NEW.col10+1; END IF;

这类似于 switch 语句,在任何时候都只会执行一个“if”。上面的代码有效,但如果第一个“if”被命中,它仍然会通过所有其他 ifs。

  1. 有更好的方法吗?
  2. 在“如果结束”之前使用“离开”是个好主意

谢谢

最佳答案

试试这个。

BEFORE UPDATE ON icharts_user_stats FOR EACH ROW 
icharts_user_stats:BEGIN

IF (NEW.col1> OLD.col1
OR NEW.col2 > OLD.col2) THEN
SET NEW.col3 = NEW.col3+1;
SET NEW.col4 = NEW.col4+1;
leave icharts_user_stats;
END IF;

IF (NEW.col5> OLD.col5
OR NEW.col6 > OLD.col6) THEN
SET NEW.col7 = NEW.col7+1;
leave icharts_user_stats;
END IF;

IF (NEW.col8> OLD.col8
OR NEW.col9 > OLD.col9) THEN
SET NEW.col10 = NEW.col10+1;
leave icharts_user_stats;
END IF;

关于mysql - 如何使用Mysql触发 'leave', 'switch'命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10593625/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com