Функция справки триггера (MySQL) - PullRequest
1 голос
/ 10 июня 2009

Я использую MySQL 5.0.32.

У меня есть две таблицы: UserItemVote и ItemStat.

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_vote или total_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;

1 Ответ

0 голосов
/ 10 июня 2009

INSERT ... ON DUPLICATE KEY UPDATE должен делать то, что вам нужно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...