I en row
trigger du har adgang til to versioner af rækken, der ændres:OLD
indeholder rækken, som den var (hvis den eksisterede) og NEW
indeholder rækken, som den vil være (hvis det vil eksistere.)
For at få din trigger til at fungere som du beskrev, ville du betinge WHERE
klausul ved hjælp af værdier fra NEW
, sådan:
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;
Jeg har antaget, at du har navngivet dine kolonner konsekvent mellem tabellerne. Bemærk, at de korrekte kolonner i NEW
har de samme navne som kolonnerne i CWOwnsGame
.