gpt4 book ai didi

mySQL 触发错误代码 1064

转载 作者:行者123 更新时间:2023-11-29 19:12:43 26 4
gpt4 key购买 nike

USE test;
CREATE TRIGGER AvgUpdateTrigger AFTER INSERT ON test.score
FOR EACH ROW
BEGIN
INSERT INTO test.average (test.average.TestID, test.average.TestAvg)
(SELECT test.score.TestID, avg(test.score.ScoreValue) FROM test.score GROUP BY test.score.TestID)
ON DUPLICATE KEY
UPDATE test.average.TestAvg = (SELECT avg(test.score.ScoreValue) FROM test.score WHERE test.score.TestID = test.average.TestID GROUP BY test.score.TestID);
END;

当另一张表发生更改(分数)时,我试图更新一张表(平均)它告诉我添加一个分号,但正如你所看到的,已经有一个分号了

最佳答案

如果触发器(或任何存储过程)仅包含一条语句,则不需要 BEGINEND:

CREATE TRIGGER AvgUpdateTrigger AFTER INSERT ON test.score
FOR EACH ROW
INSERT INTO test.average (TestID, TestAvg)
SELECT test.score.TestID, avg(test.score.ScoreValue)
FROM test.score
GROUP BY test.score.TestID
ON DUPLICATE KEY UPDATE
test.average.TestAvg = VALUES(TestAvg);

我还用 VALUES(TestAvg) 替换了子查询,因为已经选择了该值。

关于mySQL 触发错误代码 1064,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42959834/

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