2009-11-16 2 views
2

나는 '연령'을 포함한 여러 속성을 가진 '사람'테이블을 가지고 있습니다. 이 테이블에 새 튜플을 삽입 할 때마다 테이블에 나열된 모든 사람들의 평균 연령을 확인하고 싶습니다. 평균이 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

당신은 당신은 더 나은

+0

가 어떻게 트리거 내에서 IF 문 안에 있음을 사용하는 사람들로부터 SELECT AVG (나이)를 사용하는 것 (각 행에 대해) 단지 한 값의 평균을 계산하는거야? –

+0

@avg_age = SELECT AVG (연령) FROM People; IF (@avg_age> 50) 그 다음 ... – Dmitry