Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3085 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Casse tete avec des triggers qui s'auto paralysent...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Oracle] Casse tete avec des triggers qui s'auto paralysent...

n°407884
Masure
Posté le 26-05-2003 à 13:56:51  profilanswer
 

Voila une vision simplifiee du probleme :
 
------    -------     -------
-     -    -      -     -      -  
-  1 ------  2  -------  3  -
-     -    -      -     -      -  
------    -------     -------
 
Voici mes 3 tables. Les tables 1 et 3 referencent la table 2 dans un champ avec une cle etrangere. Les tables 1 et 3 dependent donc de la table 2.  
Maintenant je dois activer la suppression en cascade. Donc lorsque je supprime un enregistrement de la table 2, les enregistrements de 1 et de 3 qui y font referencent sautent aussi. C'est pile poil ce que je veux, jusque là ca va.
 
Le truc, c'est que j'ai des triggers qui se declenchent lors de suppression sur 1 et 3 et qui se font appel mutuellement. Je m'explique :
 
je supprime un enregistrement de 2, ca supprime dans 1 et 3. Le trigger de suppression de 1 (trig1) se declenche, pareil pour celui de 3 (trig3). Trig1 doit interroger la table 3 et trig3 doit interroger la table 1... et la paf ! message d'erreur classique "table en mutation, le trigger ne peut pas voir..."
 
Je peux faire quoi ?


Message édité par Masure le 26-05-2003 à 14:01:16
mood
Publicité
Posté le 26-05-2003 à 13:56:51  profilanswer
 

n°407893
irulan
Posté le 26-05-2003 à 14:00:37  profilanswer
 

C'est important tes triggers sur 1 et 3 ?
 
Si oui, pourquoi ne pas les déclencher avec un trigger sur 2 qui se lance juste avant la délétion ?

n°407901
Masure
Posté le 26-05-2003 à 14:05:58  profilanswer
 

Les triggers sont tres importants
 
C'est vraiment pas logique de declencher sur 2 et ca me ferait mal. Ca oblige a controller bcp de choses qui decoulent de cette liaison avec 1 et 3... mais si c'est la seule solution, ben tant pis alors, je ferais qqchose qui n'est pas tres logique/cohérent. C'est bien dommage que les triggers bloquent l'acces aux tables pendant l'exec.

n°407926
Masure
Posté le 26-05-2003 à 14:26:16  profilanswer
 

Nouvelles infos :
 
en fait ce ne sont pas les triggers qui s'auto paralysent mais le delete en cascade qui bloque les triggers qui doivent operer sur la table qui se supprime (du moins je crois).
 
Donc pour la suppression en cascade, il ne faut que je fasse appel a l'option d'oracle on delete cascade qui fait ca sauvagement. Vu que j'utilise PHP, il suffit que je me gere la suppression en cascade via le langage php.
 
Nan ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [Oracle] Casse tete avec des triggers qui s'auto paralysent...

 

Sujets relatifs
scrollbar auto ?Comment gerer une BD sous Delphi avec Oracle
[Oracle] Curseurs imbriqués -> deadloop :(S'exercer sur une Base oracle
existence de ORACLE 9i 32 bits pour HP UX 11Existe-t-il une fonction équivalente au nvl de Oracle sous ACCESS?
[PHP] Session ki casse aléatoirement...Rennomer un utilisateur oracle ?
[PHP] recuperer l'expression d'un agregat avec oracle 8formatage automatique d'un NUMBER en Oracle
Plus de sujets relatifs à : [Oracle] Casse tete avec des triggers qui s'auto paralysent...


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)