[英]Syntax error in trigger statement
當我的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
這些是我的表格示例供參考:
用戶:
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
您需要在開頭添加分隔符更改。
delimiter |
CREATE TRIGGER after_insert_rep_points AFTER INSERT ON users_reputation
...
END
|
delimiter ;
分隔符向DB引擎發出語句結束的信號。 通常是;
。 但那會在第一時間結束存儲過程;
。 它的定義是不完整的。
您可以更改分隔符並將其添加到過程的末尾。 之后將分隔符更改回;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.