插入后触发..以更新计数(列)

时间:2019-01-09 17:00:04

标签: mysql

我有一个表“ Comments”和它的副本,称为#Comments_copy(惊奇!)。 表“ comments”通过外来键链接到另一个调用“文章”,例如:comments.article_id = article.id。

在Comments_copy中:我有一列COUNT(Comments_id)。

我尝试在插入注释后创建触发器,以更新comments_copy中的计数。

我只是从MySQL开始,所以我对代码有些迷茫。

我猜我的问题出在我的条件“ WHERE”。但是我不知道要找出合适的条件...:(

CREATE TABLE Comments_copy 
SELECT Comments.id as C_id, article.id, COUNT(Comments.id) as Nb_comments
FROM Comments
RIGHT JOIN Article ON article.id = Comments.article_id 
GROUP BY Article.id
ORDER BY Article.id ;

DELIMITER |
CREATE TRIGGER after_insert_comments AFTER INSERT
ON comments FOR EACH ROW
BEGIN
    UPDATE Comments_copy
    SET Nb_comments = Nb_comments +1
    WHERE id = NEW.id ;

END |

DELIMITER ;

最后,我希望重新计算上一条评论条目所涉及的文章的评论数量。

1 个答案:

答案 0 :(得分:0)

请以这种方式尝试。

请注意,我将END |更改为END; |

CREATE TRIGGER after_insert_comments 
AFTER INSERT ON comments 
FOR EACH ROW 
BEGIN 
   UPDATE Comments_copy 
    SET Nb_comments = Nb_comments +1 
   WHERE id = NEW.id ;
 END; |