En una row
activador, tiene acceso a dos versiones de la fila que se está modificando:OLD
contiene la fila como era (si existiera), y NEW
contiene la fila como será (si existirá.)
Para hacer que su disparador funcione como lo describió, debe condicionar el WHERE
cláusula que usa valores de NEW
, así:
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;
Supuse que ha nombrado sus columnas de manera consistente entre las tablas. Tenga en cuenta que las columnas correctas en NEW
tienen los mismos nombres que las columnas en CWOwnsGame
.