In una row
trigger hai accesso a due versioni della riga in fase di modifica:OLD
contiene la riga come era (se esisteva) e NEW
contiene la riga come sarà (se esisterà.)
Per far funzionare il tuo trigger come hai descritto, devi condizionare il WHERE
clausola che utilizza valori da NEW
, in questo modo:
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;
Ho presupposto che tu abbia nominato le tue colonne in modo coerente tra le tabelle. Tieni presente che le colonne corrette in NEW
hanno gli stessi nomi delle colonne in CWOwnsGame
.