0
我有一张会员表和一张文章表。如何在行插入或删除时触发递增/递减?
成员可以对文章投票。每个投票都被记录下来。
我想在添加投票行时将文章作者的投票数加1,当文章作者的投票数与投票行的删除数相同时减1。
我该怎么做在MySQL?我知道你可以使用触发器,但我该怎么做呢?
我有一张会员表和一张文章表。如何在行插入或删除时触发递增/递减?
成员可以对文章投票。每个投票都被记录下来。
我想在添加投票行时将文章作者的投票数加1,当文章作者的投票数与投票行的删除数相同时减1。
我该怎么做在MySQL?我知道你可以使用触发器,但我该怎么做呢?
你可以像下面这样做
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演示
这是伟大的,但我也需要能够以更新的成员表中的两个领域 - 点和lifetime_points。他们会更新完全一样的投票领域。我怎么做? – Padraig
好的,对不起。我不知道。我确定接受这个答案。这里是链接到新问题[链接](http://stackoverflow.com/questions/18522789/how-to-update-multiple-tables-and-fields-in-a-mysql-trigger) – Padraig
这没关系。谢谢。你没有解释什么是积分和生命点。你能详细说明吗? – peterm