I en row
trigger har du tillgång till två versioner av raden som ändras:OLD
innehåller raden som den var (om det fanns) och NEW
innehåller raden som den kommer att bli (om det kommer att finnas.)
För att få din trigger att fungera som du beskrev, skulle du villkora WHERE
sats som använder värden från NEW
, som så:
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;
Jag har antagit att du har namngett dina kolumner konsekvent mellan tabellerna. Observera att rätt kolumner i NEW
har samma namn som kolumnerna i CWOwnsGame
.