在MySQL中使用触发器内的聚合函数

时间:2009-11-16 00:39:15

标签: sql mysql triggers aggregate-functions

我有一个'人员'表,其中包含几个属性,包括'年龄'。每次我在这个表中插入一个新元组时,我想知道表中列出的所有人的平均年龄。如果平均值高于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 个答案:

答案 0 :(得分:0)

您只计算1个值的平均值(每行) 你最好使用SELECT AVG(age)FROM People