Dalam row
pemicu Anda memiliki akses ke dua versi baris yang sedang dimodifikasi:OLD
berisi baris seperti sebelumnya (jika ada), dan NEW
berisi baris seperti yang akan (jika itu akan ada.)
Untuk membuat pemicu Anda berfungsi seperti yang Anda jelaskan, Anda harus mengkondisikan WHERE
klausa menggunakan nilai dari NEW
, seperti ini:
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;
Saya berasumsi bahwa Anda telah menamai kolom Anda secara konsisten di antara tabel. Perhatikan bahwa kolom yang benar di NEW
memiliki nama yang sama dengan kolom di CWOwnsGame
.