2011-08-16 4 views
0

J'ai une table mysql appelée livres qui a une colonne "votes", et une autre table appelée série qui a une colonne "total_votes". La colonne des votes suit les votes pour un livre individuel, tandis que la colonne total_votes est une tabulation de tous les votes pour tous les livres d'une série.MySQL Trigger Question

Dans la section d'administration, un administrateur peut modifier manuellement le nombre de votes d'un livre individuel. Je souhaite créer un déclencheur mysql de sorte que chaque fois qu'un vote est modifié, la différence entre l'ancienne valeur de vote et la nouvelle valeur de vote est reflétée dans la colonne total_votes. Par exemple, si le Livre A a 10 votes et la Série 1 a un total de 100 votes, quand je change le nombre de votes du Livre A à 5, je veux que le nombre total de votes de Seris 1 soit 95.

Je comprends comment pour faire un déclencheur de base, mais je ne suis pas sûr comment mettre à jour la table de la série avec la différence entre l'ancienne et la nouvelle valeur de vote.

TIA.

+0

Pouvez-vous nous donner le schéma (Asc de la table (s) en question)? – ThinkCode

Répondre

1

Ne vous inquiétez pas de la différence, mettez juste à jour en fonction d'une nouvelle somme. Par exemple:

(Je ne sais pas si cela est la syntaxe exacte MySql)

update series 
set total_votes = sum(select votes from books b where b.seriesid = seriesid)