problème de mutation causé par un trigger
bonsoir , j'ai fait un trigger pour faire des calculs sur des champs dans une table
les calculs sont :
Code:
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:
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 ?