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 :

Trigger pour Mise à jour de Table2 aprés Update de certain champ de Table1


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Points : 20
    Points
    20
    Par défaut Trigger pour Mise à jour de Table2 aprés Update de certain champ de Table1
    Bonjour

    J'aimerais votre opinion sur le trigger suivant:

    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 TEST_UPDATE
    AFTER UPDATE
    OF NOM
      ,PRENOM
    ON TEST_1
    REFERENCING NEW AS New OLD AS Old
    FOR EACH ROW
    BEGIN
      update TEST_2 set TEST_2.NOM_AFFICHE=:new.PRENOM || '  ' || :new.NOM where TEST_2.id2=:new.id;
    END ;
    /
    Le but est de mettre a jour le champ NOM_AFFICHE de la Table TEST_2 si il y a un modification des Champs Nom ou Prénom de la Table TEST_1.

    J'ai testé cela semble fonctionner mais je n'ai jamais fait ce genre de chose alors peut être qu'il ne faut pas s'y prendre comme cela?
    Est ce que ce genre de Trigger n'est pas trop impactant pour la BDD si il y a beaucoup de ligne dans les Table? Et du coup peut etre vaut il mieux faire tout cela dans le Code?

    D'avance merci de votre aide.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Votre déclencheur me paraît correct.

    Il y a un coût associé mais tant que vous ne faites pas une mise à jour trop importante sur TEST_1 ça devrait bien se passer, supposant que la colonne TEST_2.id2 est indexée.

    Ce qui ne me semble pas vraiment correct, c'est le besoin.
    La répétition d'éléments déjà présents en base va dans le sens opposé des formes normales.

    Une vue avec une jointure pourrait faire le même travail de manière dynamique, sans doubler l'information.

  3. #3
    Membre à l'essai
    Inscrit en
    Novembre 2012
    Messages
    56
    Détails du profil
    Informations forums :
    Inscription : Novembre 2012
    Messages : 56
    Points : 20
    Points
    20
    Par défaut
    Bonsoir

    Merci pour votre réponse.
    Effectivement il faut peut être faire différemment.

    Je vais poser la question sur le forum MCD mais au moins je sais que c'est jouable comme cela.

    Encore merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Trigger pour Mise à jour massive
    Par Just-Soft dans le forum SQL
    Réponses: 14
    Dernier message: 01/09/2014, 08h50
  2. Réponses: 2
    Dernier message: 13/05/2014, 12h46
  3. Trigger pour mise à jour
    Par dellys2 dans le forum PL/SQL
    Réponses: 4
    Dernier message: 21/11/2011, 21h14
  4. Réponses: 3
    Dernier message: 17/04/2010, 14h56
  5. diff avant et après sorting pour mise à jour du modèle
    Par Leon Ira dans le forum Composants
    Réponses: 2
    Dernier message: 30/07/2009, 21h55

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