Pregunta

Tengo una tabla 'Personas' con varios atributos que incluyen la 'edad'. Cada vez que inserte una nueva tupla en esta tabla, me gustaría averiguar la edad media de todas las personas que figuran en la tabla. Si el promedio está por encima de 50, Quiero modificar la edad en la tupla que se inserta. Estoy usando un disparador 'antes de insertar' para esto. Aquí está el código de prueba que tienen actualmente (se puede pasar por alto las líneas delimitadoras ''):

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 ;

¿Qué estoy haciendo mal?

¿Fue útil?

Solución

Usted está calculando la media de sólo 1 valor (por cada fila) Es mejor utilizar SELECT AVG (edad) de las personas

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top