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