Trong một row
kích hoạt bạn có quyền truy cập vào hai phiên bản của hàng đang được sửa đổi: OLD
chứa hàng như nó cũ (nếu nó tồn tại) và NEW
chứa hàng như nó sẽ là ( nếu nó sẽ tồn tại.)
Để làm cho trình kích hoạt của bạn hoạt động như bạn đã mô tả, bạn phải điều kiện WHERE
mệnh đề sử dụng các giá trị từ NEW
, như vậy:
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;
Tôi đã giả định rằng bạn đã đặt tên cho các cột của mình một cách nhất quán giữa các bảng. Lưu ý rằng các cột chính xác trong NEW
có cùng tên với các cột trong CWOwnsGame
.