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

Administration Oracle Discussion :

Trigger + question facile


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Par défaut Trigger + question facile
    Bonjour, je travaille sur oracle 9 et j'aimerai créer pour la premiere fois un trigger. J'ai bien entendu visité plusieurs tutoriels que j'ai trouvé sur ce site et j'aimerai savoir si il est indispensable d'indiquer REFERENCING pour utiliser OLD et NEW

    Merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    40
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Vendée (Pays de la Loire)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Par défaut
    Moi perso, j'ai toujours développé mes triggers en utilisant old et new sans pour autant faire occurence a referencing .... Je ne sais d'ailleur pas ce que c'est ...

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Par défaut
    merci de ta réponse. Comme tu utilise souvent des trigger pourrais-tu me dire si ca ressemble à quelque chose
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    CREATE TRIGGER VERIFICATION_UPDATE
    BEFORE UPDATE ON PROCESSTERG.APPRO_LABEL
    FOR EACH ROW  
    WHEN ((NEW.NOM != OLD.NOM) OR (NEW.E_MAIL != OLD.E_MAIL) OR (NEW.GROUP_ID !=OLD.GROUP_ID) OR (NEW.PAYS != OLD.PAYS) OR (NEW.TYPE_PRODUIT != OLD.TYPE_PRODUIT))
    BEGIN 
    	UPDATE PROCESSTRG.APPRO_LABEL
    	SET ((NOM = :new.NOM),(E_MAIL=:new.E_MAIL),(GROUP_ID=:new.GROUP_ID),(PAYS=:new.PAYS),(ACTIF=:new.ACTIF),(TYPE_PRODUIT=:new.TYPE_PRODUIT)) WHERE ((NOM=:old) OR (E_MAIL=:old.E_MAIL) OR (GROUP_ID=:old.GROUP_ID) OR (PAYS=:old.PAYS)
     OR (TYPE_PRODUIT=:old.TYPE_PRODUIT))
     
    END;
    merci

  4. #4
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut

    C'est le # quand tu écris/edites tes messages

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Par défaut
    Merci McM, pour ça remarque judicieuse


  6. #6
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Tu aimes bien les (), non ?

    Sinon, attention tu ne gères pas les NULL (NULL n'est pas différent d'une valeur NOT NULL)
    L'update est bizarre, tu mets à jour toutes les données qui ont le même ancien pays ou le même ancien nom, etc..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    CREATE TRIGGER VERIFICATION_UPDATE
    BEFORE UPDATE ON PROCESSTERG.APPRO_LABEL
    FOR EACH ROW
    WHEN (	NEW.NOM != OLD.NOM 
    	OR NEW.E_MAIL != OLD.E_MAIL
    	OR NEW.GROUP_ID !=OLD.GROUP_ID
    	OR NEW.PAYS != OLD.PAYS
    	OR NEW.TYPE_PRODUIT != OLD.TYPE_PRODUIT)
    BEGIN
     
    	UPDATE PROCESSTRG.APPRO_LABEL
    	SET nom = :NEW.nom,
        	e_mail=:NEW.e_mail,
            group_id=:NEW.group_id,
            pays=:NEW.pays,
            actif=:NEW.actif,
            type_produit=:NEW.type_produit
    	WHERE nom=:OLD.nom 
    	OR e_mail=:OLD.e_mail
    	OR group_id=:OLD.group_id
    	OR pays=:OLD.pays
    	OR type_produit=:OLD.type_produit;
     
    END;

  7. #7
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    229
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 229
    Par défaut
    Merci de ta réponse et
    I Love ()

    je n'ai plus qu'à attendre le teste

Discussions similaires

  1. Question facile sur la classe string
    Par MarOne dans le forum Langage
    Réponses: 9
    Dernier message: 20/04/2006, 14h28
  2. [Débutant] question facile pour vous
    Par Michel_57 dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 05/04/2006, 07h16
  3. 2 Questions facile sur scrollbar et Accents
    Par mamizo dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/02/2005, 11h53
  4. Question facile, erreur bizzare lors d'un Left, Top
    Par SpiderAlpha dans le forum C++Builder
    Réponses: 4
    Dernier message: 05/05/2004, 12h56
  5. Question facile!!!!
    Par AL-{3D}- dans le forum DirectX
    Réponses: 2
    Dernier message: 13/10/2003, 23h37

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