我正在使用MySQL 5.0.32。

我有两个表:UserItemVoteItemStat

UserItemVote具有:

user_id, item_id, vote(tinyint either 0 for downvote or 1 for upvote)


ItemStat具有:

item_id, total_up_vote, total_down_vote


当用户投票赞成/反对某项(插入UserItemVote表)时,
我想要一个触发器tai_UserItemVote来更新
total_up_votetotal_down_vote中的ItemStat

到目前为止,我只解决了更新触发器,但没有解决插入触发器。

tai_UserItemVote插入触发器:

// insert to itemstat if row not exist otherwise update itemstat.


tau_UserItemVote更新触发器:

UPDATE ItemStat set total_down_vote=total_down_vote+1
WHERE item_id=NEW.item_id and NEW.vote = 0;
UPDATE ItemStat set total_up_vote=total_up_vote+1
WHERE item_id=NEW.item_id and NEW.vote = 1;

最佳答案

INSERT ... ON DUPLICATE KEY UPDATE应该做您所需要的。

关于mysql - 触发帮助功能(MySQL),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/974515/

10-12 23:47