Problème avec un trigger : table mutante
Bonjour,
alors voila j'ai l'erreur ORA-04091 qui me parle de table mutante.
J'ai lu ce tutoriel http://sgbd.developpez.com/oracle/ora-04091/ mais je ne comprends toujours pas.
J'ai un trigger qui doit mettre à jour un montant de séjour, dès que l'on insère une participation à une activité.
Je met à jour mon montant après l'ajout d'une participation. Les clés primaires de la table PARTICIPE sont 2 clés externes: no_sejour (table SEJOUR) et no_activite (table ACTIVITE).
Voici le code de mon trigger :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
CREATE OR REPLACE TRIGGER majFacture AFTER INSERT ON PARTICIPE FOR EACH ROW DECLARE
v_nb_unites NUMBER;
v_prix_unite NUMBER;
BEGIN
SELECT :NEW.nb_unites INTO v_nb_unites FROM PARTICIPE;
SELECT a.prix_unite INTO v_prix_unite FROM ACTIVITE a
WHERE :NEW.no_activite = a.no_activite;
UPDATE SEJOUR SET montant_sejour = montant_sejour + (v_nb_unites * v_prix_unite)
WHERE SEJOUR.no_sejour = :NEW.no_sejour;
END; |
Je vous remercie de m'aider car je ne vois vraiment pas quoi faire. :(