0
當我的users_reputation
點表得到更新(插入)時,我想對該用戶的點進行新的計數(SUM)並更新users
表中的total_rep
列。觸發器語句中的語法錯誤
這是我想出來的,但不斷收到語法錯誤。如果有人能指出我的錯誤,我將不勝感激。
CREATE TRIGGER after_insert_rep_points AFTER INSERT ON users_reputation
FOR EACH ROW
BEGIN
DECLARE new_total INT(10);
SELECT SUM(rep_points) INTO new_total FROM users_reputation
WHERE user_id = NEW.user_id;
UPDATE users SET rep_total = new_total WHERE user_id = NEW.user_id;
END
這些都是我的表的例子以供參考:
USERS:
user_id | first_name | total_rep
-------------+----------------+--------------
10001 | Jim | 17
10002 | Bob | 5
USERS_REPUTATION:
user_id | rep_task | rep_points | rep_date
-----------+-------------------------------+--------------+-----------------------
10001 | Commented on article | 5 | 2012-11-12 08:40:32
10001 | Read an article | 2 | 2012-06-12 12:32:01
10001 | Shared an article | 10 | 2012-06-04 17:39:44
10001 | Read an article | 2 | 2012-05-19 01:04:11
10002 | Commented on article | 5 | 2012-06-17 09:34:21
認爲這個工作因爲我現在得到一個特權錯誤。謝謝。 – TheCarver
而我的共享主機帳戶不支持「超級用戶」MySQL特權!所以這浪費了一個小時!無論如何,謝謝:) – TheCarver
Jeez,當我在一個問題上花費數小時,開始發佈一個問題時,我討厭它,然後最後的「可能已經有你的答案的問題」指向我一個答案。像這兒。謝謝。 – dcromley