0

我有一张成员表和一张文章表。

成员可以对文章进行投票。记录每一个人的投票。

我想在添加投票行时将文章作者的投票数加 1,当删除投票行时文章作者的投票数减 1。

我将如何在 MySQL 中做到这一点?我知道您可以使用触发器,但我该怎么做呢?

4

1 回答 1

2

你可以这样做

CREATE TRIGGER tg_ai_article_votes
AFTER INSERT ON article_votes
FOR EACH ROW 
  UPDATE articles
     SET votes = COALESCE(votes, 0) + 1
   WHERE id = NEW.article_id;

CREATE TRIGGER tg_ad_article_votes
AFTER DELETE ON article_votes
FOR EACH ROW 
  UPDATE articles
     SET votes = COALESCE(votes, 0) - 1
   WHERE id = OLD.article_id;

您没有提供您的特定表架构,因此我在示例中即兴使用了表名和列名。

这是SQLFiddle演示

于 2013-08-29T03:43:11.043 回答