Hello,
j'ai un petit problème avec un trigger.

J'ai une table "employes" qui contient entre autre le salaire de l'employé et le nombre d'enfants qu'il a.
Il faut que quand on modifie le nombre d'enfant, on enlève/ajoute 200.- par enfant au salaire.

Mon code actuel est :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
create or replace trigger TRG_PRIME_ENFANT
after update
on EMPLOYES        -- sur la table EMPLOYES
for each row  -- pour chaque ligne
begin
  if (:new.NB_ENF !=  :old.NB_ENF) then
    UPDATE EMPLOYES SET salaire = salaire  + 200 * (:NEW.NB_ENF -  :OLD.NB_ENF);
  end if ;
end ;
Mais lors de la modification du nombre d'enfants d'un employé, j'ai l'erreur suivante :

UPDATE "ELCD42"."EMPLOYES" SET NB_ENF = '1' WHERE ROWID = 'AAAW+NAAEAAAEJkAAA' AND ORA_ROWSCN = '37229262'

One error saving changes to table "ELCD42"."EMPLOYES":
Row 1: ORA-04091: la table ELCD42.EMPLOYES est en mutation ; le déclencheur ou la fonction ne peut la voir
ORA-06512: à "ELCD42.TRG_PRIME_ENFANT", ligne 3
ORA-04088: erreur lors d'exécution du déclencheur 'EJR21.TRG_PRIME_ENFANT'
Je ne comprend pas d'où vient le problème, quelqu'un aurait une piste pour m'aider ?

Merci