2009-11-16 97 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