Bonjour,
J'ai déjà pas mal cherché mais pas encore trouvé de solution!
J'ai une table Accueil qui est de cette forme
Ce que je souhaite faire c'est que lorsque l'utilisateur modifie une adresse, alors toutes les adresses dont le code_structure correspond à la ligne qui vient d'être modifiée soient mises à jour avec la nouvelle adresse
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 ID Code_structure Adresse 1 10 1 chemin de Pierres 2 20 36 rue des Alouettes 3 20 36 rue des Alouettes 4 20 36 rue des Alouettes 5 30 15 avenue de Bel Air 6 30 15 avenue de Bel Air 7 40 2 rue André Albert
Par exemple pour l'enregistrement ID=5, l'adresse devient "15 rue de Bel Air". Je souhaiterai que mon trigger mette à jour l'enregistrement ID=6 (qui a le même code_structure) et automatiquement lui affecter au champ adresse la valeur "15 rue de Bel Air"
Alors oui je sais, ce n'est pas du tout correct modélisationnellement parlant
On devrait avoir une table Structure qui contient l'adresse, liée à la table Accueil qui elle même accueillerait le champ code_structure comme clé étrangère
Seulement voilà, vis à vis de l'outil qui exploite mes données et selon le rendu souhaité par les utilisateurs je n'ai pas vraiment le choix... alors pouvez-vous m'aidez quand même?![]()
Mon trigger aurait cette forme là :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 CREATE OR REPLACE TRIGGER TRIG3 AFTER update of adresse ON Accueil for each row declare pragma autonomous_transaction; BEGIN update Table set adresse= :new.adresse where code_structure=:new.code_structure; END ; /
Seulement, et c'est logique, j'ai l'impression qu'il boucle, j'ai ce message là quand je fais un UPDATE sur mon champ adresse :
Ce qui serait logique puisque je mets à jour un champ qui déclenche lui même un trigger lorsqu'on le met à jour...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ORA-00060: détection d'interblocage pendant l'attente d'une ressource ORA-06512: à "ENFANCE.TRIG3", ligne 5 ORA-04088: erreur lors d'exécution du déclencheur 'ENFANCE.TRIG3'
Je butte vraiment sur le problème depuis 2 jours!
Merci d'avance pour toutes pistes de reflexion ou de recherches que vous pourriez m'apporter!
Partager