V row
spouštěče máte přístup ke dvěma verzím upravovaného řádku:OLD
obsahuje řádek tak, jak byl (pokud existoval) a NEW
obsahuje řádek tak, jak bude (pokud bude existovat.)
Aby váš spouštěč fungoval tak, jak jste popsali, měli byste podmínit WHERE
klauzule používající hodnoty z NEW
, asi takhle:
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;
Předpokládal jsem, že jste své sloupce mezi tabulkami pojmenovali konzistentně. Všimněte si, že správné sloupce v NEW
mají stejné názvy jako sloupce v CWOwnsGame
.