簡體   English   中英

觸發器語句中的語法錯誤

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM