Salut tout le monde
j'ai écrit un trigger qui me permet qu'à chaque fois que j'insers une nouvelle valeur d'une colonne C1 à une table T1 le trigger insert la meme valeur de colonne C1 à une autre table T2 mais le problème c'est qu'il insert la valeur de colonne en double , par exemple si j'ajoute 1 à la table T1 il m'affiche dans la table T2 1 1 :
T1 -----C1-------
1
T2 -----C1-------
1
1
Voici mon code :
la structure des deux tables :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 CREATE TRIGGER tr_insert ON eleves FOR INSERT AS INSERT INTO evaluations(idelv) SELECT idelv
eleves(idelv,nom,pren,datenais,lieunais,#classeid,...)
evaluations(idelv,idmat,idtrim,note)
idelv PK dans la table eleves
le triplet (idelv,idmat,idtrim) Clé composée (idelv : FK ; idmat : FK ; idtrim : FK) issues des tables eleves , matieres , trimestres respectivement voici la structure des tables matieres et trimestres :
matieres(idmat,libmat,typemat)
trimestres(idtrim,libtrim,datedebut,datefin)
donc la table evaluations n'est autre qu'une table qui est engendrée ou issue de la relation ternaire entre : eleves , matieres et trimestres ce que je veux c'est en fait saisir les notes(le champ "note") des élèves sans resaisir les "idelv" , "idmat" et "idtrim" car en fait ils sont déjà saisies et enregistrés dans leurs tables respectives c'est pour ça que je veux crée un Trigger pour qu'il puisse ajouter automatiquement les "idelv" , "idmat" et "idtrim" dans la table evaluations à chaque fois que j'ajoute ces memes clés primaires dans les tables : eleves , matieres et trimestres
En fait je veux qu'à chaque fois que j'ajoute un nouvel élève(idelv) le trigger ajoute le meme "idelv" à la table evaluations car à mon avis le champs idelv qui est une clé étrangère dans la table evaluations ne nécéssite pas qu'on le resaisi encore une fois d'où l'idée de créer un trigger pour ajouter automatiquements les "idelv" à la table evaluations.
Encore une chose , vu que la table evaluations contient trois clés étrangères n'est-il pas possible d'intégrer en un seul trigger la possibilité d'ajouter automatiquement les "idelv" dans la table eleves , les "idmat" dans la table matieres et enfin les "idtrim" dans la table trimestres. Merci d'avance
Partager