Ich habe einen Trigger, der wie folgt aussieht:Auslöser nicht
CREATE TRIGGER findavg after INSERT
ON rating
FOR EACH row
UPDATE `profile`
SET userscore = (SELECT Avg(rscore)
FROM rating
WHERE `profile`.`pid` = rating.raterid)
WHERE pid = new.pid;
wo
PROFILE table - pID, name, userScore
RATING table - raterID, rScore, rDescription
Es beim ersten Mal funktioniert ich diesen Trigger implementiert, aber gestern habe ich alle Daten in beide fallen gelassen Profil und Bewertung Tabelle. Also habe ich "frisch neue" Daten für Profil und Bewertung eingefügt.
Jetzt jedes Mal, wenn ich eine "RATING" einfügen, wird der Trigger nicht aktualisiert der userScore.
Also gerade jetzt, ich habe einige PROFILE, die "" in userScore haben, obwohl in der RATING-Tabelle der Wert "6" für den RScore ist.
Ich bin verwirrt, weil ich ziemlich sicher bin basierend auf Syntax, es ist schon richtig.
Hilf mir bitte. Vielen Dank.
Wenn Sie dies in Ihrer Datenbank ausführen, funktioniert es? 'UPDATE PROFILE SET userScore = (WÄHLE AVG (rScore) aus RATING, wo PROFILE.pID = RATING.raterID) WHERE pID = someId' –
Bist du sicher, dass der Trigger nicht fallen gelassen wurde, nachdem du die Tabellen abgelegt hast? –
Wie genau haben Sie die Daten in der Bewertungstabelle gelöscht? Welchen Befehl hast du benutzt? – Shadow