MySQL의 트리거 내부에서 집계 함수를 사용합니다
-
20-09-2019 - |
문제
나는 '나이'를 포함한 몇 가지 속성을 가진 '사람들'테이블이 있습니다. 이 테이블에 새 튜플을 삽입 할 때마다 테이블에 나열된 모든 사람들의 평균 연령을 알고 싶습니다. 평균이 50 이상인 경우 삽입되는 튜플의 연령을 수정하고 싶습니다. 이것을 위해 'insert'트리거를 사용하고 있습니다. 다음은 내가 현재 가지고있는 테스트 코드입니다 ( 'Delimiter'라인을 무시할 수 있음).
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)를 사용하는 것이 좋습니다.
제휴하지 않습니다 StackOverflow