Bonjour,
je développe actuellement un petit site web avec une base de données MySQL.
Dans cette base de données, je veux créer plusieurs triggers
je vous décris ici les deux tables sur lesquelles agit le trigger:
- message(num_message(PK), type_message, contenu_message, num_emmeteur, num_destinataire, date_emission, num_alliance_destinataire, message_lu)
- recevoir(num_message(PK), num_joueur(PK), message_lu)
en principe, pour les messages n'ayant qu'un seul destinataire, on ne se sert pas de la table recevoir, num_alliance_destinataire sera alors à 0 et message_lu passera à vrai quand le destinataire lit le message
en revanche, quand le message est adressé à l'alliance, tous les membres de l'alliance doivent pouvoir le recevoir, on ajoute donc une ligne dans la table recevoir pour chaque membre de l'alliance, avec une référence vers le message et le booléen message_lu
c'est cette partie que je veux automatiser, en faisant en sorte qu'un trigger crée automatiquement ces lignes
une image du MLD est dispo ici:
http://www.imagup.com/imgs/1219610261.html
(dans la table joueur, remplacez num_joueur par num_alliance_destinataire et ajoutez message_lu
la table type_role n'est pas encore finie, je vais y ajouter une colonne description et quelques autres trucs
j'ai donc commencé à développer ce trigger:
CREATE TRIGGER TR_recevoir_message AFTER INSERT ON message FOR EACH ROW (BEGIN label_action IF (NEW.num_alliance_destinataire != 0) BEGIN label_insertion -- ici, je devrais faire un truc genre FOR ROW IN (SELECT DISTINCT r.num_joueur AS numero_joueur FROM role r WHERE r.num_alliance=NEW.num_alliance_destinataire ) (INSERT INTO 'recevoir' VALUES (NEW.num_message, numero_joueur, 0)) -- fin du for END label_insertion END label_action);
voila, alors je voulais savoir ce que je dois modifier sur ce trigger pour qu'il marche