IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

Ordre de déclanchement des triggers


Sujet :

Oracle

  1. #1
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Par défaut Ordre de déclanchement des triggers
    Bonjour,

    Je n'arrive pas à trouver s'il est possible de préciser dans quel ordre doivent s'exécuter des triggers. Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE OR REPLACE TRIGGER A
    before insert on UneTable
    FOR EACH ROW
    Begin
       ....
    End;
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE OR REPLACE TRIGGER B
    before insert on UneTable
    FOR EACH ROW
    Begin
       ....
    End;
    Comment préciser que A doit s'exécuter avant B. Ils doivent être tous les 2 before insert.

    Merci.

    Edit : par bouyao :

  2. #2
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Par défaut
    bonjour,
    tu as 2 triggers sur la même table et pour le même evénement alors pour quoi ne pas mettre le tout dans un seul et un même trigger et comme ça tu vas mettre les insructions dans l'ordre que tu veux

  3. #3
    Membre averti
    Inscrit en
    Juillet 2004
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Juillet 2004
    Messages : 13
    Par défaut
    Certes, mais au niveau de la lisibilité ça serait mieux de les séparer. C'est comme ça que je fais pour l'instant en attendant mieux.

  4. #4
    Membre confirmé
    Inscrit en
    Août 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 181
    Par défaut
    si tu tiens bon à la lisibilité tu peux juste bien comenter ton code c'est plus facile.
    quand à la sépartion ce n'est pas trés propre ce que tu fais et d'ailleur ça te cré un problème

  5. #5
    Membre chevronné Avatar de Wurlitzer
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    469
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2006
    Messages : 469
    Par défaut
    Malheureusement, il y a des cas où on est obligé de conserver deux triggers. Par exemple pcq un trigger est fourni par un l'editeur de logiciel et que l'on veut en rajouter un specifique.

    Mais ce qui est encore plus malheureux c'est que rien ne garantie l'ordre d'execution des triggers, si il y en a plusieurs sur le meme evenement

    Il y a longtemps, j'avais fais des tests et j'avais constaté qu'Oracle execute en premier le trigger qui a été compilé en premier pour la première fois. Les recompilations successives ne change rien par la suite.

    Je ne suis pas sur que cela reste vrai d'une version a une autre et dans tout les cas c'est trop risqué pour se baser dessus.

    Il ne reste plus qu'une seul solution. C'est d'écrire des triggers intélligents capables de fonctionner dans les deux sens mais là aussi c'est pas gagné

Discussions similaires

  1. [SQL2008] Ordre d'exécution des triggers
    Par gmano dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 01/03/2010, 19h08
  2. Ordre d'exécution des triggers AFTER
    Par pascal_T dans le forum Administration
    Réponses: 4
    Dernier message: 19/06/2009, 17h04
  3. Delphi5 (IBX) - Interbase6.0 + Utilisation des triggers
    Par _Marsu_ dans le forum Bases de données
    Réponses: 3
    Dernier message: 04/04/2004, 18h02
  4. Qry Liste des trigger
    Par Gandalf24 dans le forum Développement
    Réponses: 6
    Dernier message: 31/03/2004, 16h38
  5. Réponses: 5
    Dernier message: 11/12/2003, 14h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo