Frage

Ich habe eine "People" -Tabelle mit mehreren Attributen, einschließlich "Alter". Jedes Mal, wenn ich ein neues Tupel in diese Tabelle einfüge, möchte ich das Durchschnittsalter aller in der Tabelle aufgeführten Personen herausfinden. Wenn der Durchschnitt über 50 liegt, möchte ich das Alter im einfügenen Tupel ändern. Ich benutze dafür einen Auslöser "Before Insert". Hier ist der Testcode, den ich derzeit habe (Sie können die Zeilen von 'Trennzeichen' ignorieren):

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 ;

Was mache ich falsch?

War es hilfreich?

Lösung

Sie berechnen den Durchschnitt für nur 1 Wert (für jede Zeile). Sie sollten Select AVG (Alter) von Menschen besser verwenden

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top