Pergunta

Eu tenho uma mesa de 'pessoas' com vários atributos, incluindo 'idade'. Cada vez que insiro uma nova tupla nessa tabela, gostaria de descobrir a idade média de todas as pessoas listadas na tabela. Se a média estiver acima de 50, quero modificar a idade na tupla que está sendo inserida. Estou usando um gatilho 'antes da inserção' para isso. Aqui está o código de teste que eu tenho atualmente (você pode ignorar as linhas 'delimitador'):

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 ;

O que estou fazendo errado?

Foi útil?

Solução

Você está calculando a média de apenas 1 valor (para cada linha), é melhor usar o AVG selecionado (idade) das pessoas

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top