[Oracle - PL/SQL] Problème de trigger et de table inaccessible

Problème de trigger et de table inaccessible [Oracle - PL/SQL] - SQL/NoSQL - Programmation

Marsh Posté le 03-12-2004 à 13:38:07    

Bonjour :hello:
 
Je cherche à créer un trigger sur une base oracle mais je rencontre un problème:
 
Le trigger doit être lancé lors d'un update ou d'un insert sur la table A, et ce trigger provoque alors la suppression ou non de l'enregistrement updaté ou inséré, selon certains critères.
 
Le problème est que visiblement lorsque je tente de faire ma suppression d'enregistrement, la table est "bloquée" par l'insert ou l'update qui a déclenché le trigger, elle est inaccessible.
 
Précisément j'obtiens ceci:

Citation :


ERREUR à la ligne 1 : ORA-04091: table A en mutation, déclencheur/fonction ne peut la voir


 
Voila je ne sais pas trop quoi faire, y a t il une solution de contournement ou ce que je tente de faire est il tout simplement impossible?
 
Merci pour votre aide :)

Reply

Marsh Posté le 03-12-2004 à 13:38:07   

Reply

Marsh Posté le 03-12-2004 à 15:03:27    

Efface la ligne située dans le "INSERTED" et non dans la table. Tu n'as pas le droit de toucher à la table hébergeant le trigger depuis un trigger.
T'as deux vues "INSERTED" et "DELETED" qui correspondent aux éméments supprimés et mis à jour par la requête ayant déclenché le trigger, et c'est les seules que tu peux modifier si mes souvenirs sont bons.
 
Pour deleter un enreistrement que tu es en train de mettre à jour, je ne vois pas trop comment faire depuis un trigger. Peut-être que si tu fait un "delete inserted" ça marchera, mais rien n'est moins sur :))

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed