bonsoir , j'ai fait un trigger pour faire des calculs sur des champs dans une table
les calculs sont :
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));
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
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;
/
mais j'ai toujours un problème de mutation de table ce que je comprend pas .
quelqu'un peut m'expliquer ?