bonsoir , j'ai fait un trigger pour faire des calculs sur des champs dans une table
les calculs sont :
mon premier essaie été de faire un trigger sur cette table même incluant ces intructions , alors j'ai obtenu un problème de mutation . j'ai pensée alors a faire une table clone qui va stocker les calculs et exercer le trigger sur la première table . voila le code :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 update pay_professeur2 set masse_horaire_restante = masse_horaire_totale - (masse_horaire_effectue + masse_horaire_precedents); update pay_professeur2 set honoraire = masse_horaire_effectue * 13.5; UPDATE pay_professeur2 SET honoraire_globale = (SELECT sum(honoraire) FROM pay_professeur WHERE pay_professeur.id_professeur IN (SELECT id_professeur FROM professeur));
mais j'ai toujours un problème de mutation de table ce que je comprend pas .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 create or replace trigger pay_prof_up2 after insert or update on pay_professeur for each row declare var number ; begin insert into pay_professeur2 (id_professeur,nom_matiere,masse_horaire_totale,masse_horaire_precedents,masse_horaire_effectue) values (:new.id_professeur,:new.nom_matiere,:new.masse_horaire_totale,:new.masse_horaire_precedents,:new.masse_horaire_effectue) ; update pay_professeur2 set masse_horaire_restante = masse_horaire_totale - (masse_horaire_effectue + masse_horaire_precedents); update pay_professeur2 set honoraire = masse_horaire_effectue * 13.5; UPDATE pay_professeur2 SET honoraire_globale = (SELECT sum(honoraire) FROM pay_professeur WHERE pay_professeur.id_professeur IN (SELECT id_professeur FROM professeur)); End; /
quelqu'un peut m'expliquer ?
Partager