我有一个“人物”表,其中包含多个属性,包括“年龄”。每次我向这个表中插入一个新的元组时,我都想找出表中列出的所有人的平均年龄。如果平均值高于 50,我想修改插入的元组中的年龄。我为此使用了“BEFORE INSERT”触发器。这是我目前的测试代码(您可以忽略“分隔符”行):
delimiter |
CREATE TRIGGER checkAge BEFORE INSERT ON People
FOR EACH ROW BEGIN
IF AVG(age) > 50 THEN
SET NEW.age = 20;
END IF;
END
|
delimiter ;
我做错了什么?
最佳答案
您仅计算 1 个值的平均值(对于每一行) 你最好使用 SELECT AVG(age) FROM People
关于sql - 在 MySQL 的触发器中使用聚合函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1739495/