gpt4 book ai didi

MySQL IF 触发错误

转载 作者:行者123 更新时间:2023-11-29 11:49:27 25 4
gpt4 key购买 nike

这是我的 SQL,但是 MySQL 服务器一直说它的 SQL 语法有错误。我已经尝试了很多次,但没有成功。请帮忙!

DELIMITER //
CREATE TRIGGER Score_Count_for_Contestant
AFTER INSERT ON award
FOR EACH ROW
BEGIN
IF NEW.award = 'gold'AND contestant.CID=new.CID THEN
UPDATE contestant SET contestant.score= contestant.score+10

IF new.Award='silver' AND contestant.CID=new.CID THEN
UPDATE contestant SET contestant.score= contestant.score+8

IF new.Award='bronze' AND contestant.CID=new.CID THEN
UPDATE contestant SET contestant.score= contestant.score+6
END IF
END //

DELIMITER ;

最佳答案

我会消除if并简化逻辑:

UPDATE contestant c
SET c.score = (case when NEW.award = 'gold' then c.score + 10
when NEW.award = 'silver' then c.score + 8
when NEW.award = 'bronze' then c.score + 6
else c.score
end)
WHERE c.CID = new.CID

如果还有很多其他奖项,您可以将此条件添加到 where 子句 NEW.award IN ('gold', 'silver', 'bronze') .

您的代码不起作用,因为您在 IF 中引用了 contestant.CID,并且它未定义。注意:您可能仍然遇到分隔符问题,但从代码示例中尚不清楚。

关于MySQL IF 触发错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34382619/

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