J'ai une table 'People' avec plusieurs attributs dont 'age'. Chaque fois que j'insère un nouveau n-uplet dans cette table, je voudrais connaître l'âge moyen de toutes les personnes listées dans le tableau. Si la moyenne est supérieure à 50, je veux modifier l'âge dans le tuple en cours d'insertion. J'utilise un déclencheur 'BEFORE INSERT' pour cela. Voici le code de test J'ai actuellement (vous pouvez ignorer les lignes « » delimiter):Utilisation de fonctions agrégées à l'intérieur d'un déclencheur dans 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 ;
Qu'est-ce que je fais mal?
Comment puis-je utiliser que dans une instruction IF dans un déclencheur? –
@avg_age = CHOISIR AVG (age) FROM Personnes; SI (@avg_age> 50) ALORS ... – Dmitry