Domanda

Ho una tabella 'persone' con diversi attributi tra cui 'l'età'. Ogni volta che si inserisce una nuova tupla in questa tabella, vorrei scoprire l'età media di tutte le persone elencate nella tabella. Se la media è superiore a 50, voglio modificare l'età nel tupla viene inserita. Io sto usando un trigger 'PRIMA DI INSERIRE' per questo. Ecco il codice di prova che hanno attualmente (è possibile ignorare le linee di delimitazione ''):

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 ;

Che cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Si sta calcolando la media di solo 1 valore (per ogni riga) È meglio utilizzare SELEZIONA AVG (età) da parte di persone

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top