W row
wyzwalacz masz dostęp do dwóch wersji modyfikowanego wiersza:OLD
zawiera wiersz w takim stanie, w jakim był (jeśli istniał) i NEW
zawiera wiersz w takim stanie, w jakim będzie (jeśli będzie istnieć.)
Aby twój wyzwalacz działał tak, jak opisałeś, warunkujesz WHERE
klauzula używająca wartości z NEW
, jak tak:
CREATE TRIGGER update_loyalty_points
AFTER INSERT ON CWUserOwnsGame
FOR EACH ROW
UPDATE CWUsers
SET loyaltyPoints = loyaltyPoints +
(SELECT loyaltyPoints
FROM CWGameList
WHERE gameConsole = NEW.cName
AND gameName = NEW.gName)
WHERE username = NEW.uName;
Założyłem, że nazwy kolumn między tabelami są spójne. Zwróć uwagę, że prawidłowe kolumny w NEW
mają takie same nazwy jak kolumny w CWOwnsGame
.