2009-11-16 96 views
2

我有一个'People'表,其中包含'age'等几个属性。每次我在这个表格中插入一个新的元组时,我想知道表中列出的所有人的平均年龄。如果平均值高于50,我想修改插入的元组的年龄。我为此使用了“BEFORE INSERT”触发器。这里是我现在使用的测试代码(可以忽略'分隔符'行):在MySQL中使用触发器内的聚合函数

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 ; 

我在做什么错?

回答

0

你计算平均只需1的值(每行) 你最好使用SELECT AVG(年龄)距离人民

+0

我将如何使用IF语句内触发器内? – 2009-11-16 00:51:24

+0

@avg_age =选择AVG(年龄)从人; IF(@avg_age> 50)THEN ... – Dmitry 2009-11-16 01:08:38