Em uma
row
acionador, você tem acesso a duas versões da linha que está sendo modificada:OLD
contém a linha como era (se existir) e NEW
contém a linha como será (se ele existirá.) Para fazer seu acionador funcionar como você descreveu, você deve condicionar o
WHERE
cláusula usando valores de NEW
, igual a: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;
Eu assumi que você nomeou suas colunas de forma consistente entre as tabelas. Observe que as colunas corretas em
NEW
têm os mesmos nomes das colunas em CWOwnsGame
.