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 :

Problème de triggers


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 915
    Par défaut Problème de triggers
    bonjour à tous et à toutes,
    Voilà j'ai 2 tables sous Oracle : Personne et Presente, je voudrais automatiser un champ appelé NB_EMIS qui compte le nombre d'émission présentées par une personne, pour ceçi j'ai écrit ce triger dans la table Personne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Create or replace Trigger "Enr_Personne"
    before insert on Personne
    for each row
    declare
    wnb_emission number(2);
    begin
    select count(*) into wnb_emission from Presente where Presente.codpers=:new.codpers;
    Update Personne set Nb_Emis=wnb_emission where personne.codpers=:new.codpers;
    end;
    Le problème est que la valeur new.codpers n'est pas connue quand je suis en insertion et la mise à jour ne se fait pas correctement, j'ai essayé plusieurs solutions en positionnant par exemple ce trigger sur l'évènement "After Update" ou "Before update" cela ne marche pas non plus.
    J'ai pensé à faire 2 triggers :
    1 - avant insertion pour compter le nombre d'emissions
    et l'autre avant mise à jour mais je ne sais pas comment faire...
    Si quelqu'un a une idée merçi

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    D'une certaine façon, vous avez pris le problème à l'envers.

    Définissez votre table Personne avec la colonne Nb_Emis ayant un DEFAULT à 0.

    J'imagine qu'une personne pas encore enregistrée ne peut pas faire d'émission (vérifiez bien que vous avez une contrainte d'intégrité), donc le 0 est une valeur valide.

    Ensuite ce sont sur les modifications dans la table Presente qui vont modifier le nombre d'émissions de la table Personne. Il faut donc que votre trigger pointe sur cette première table.

    Vous n'êtes pas obligé d'effectuer un comptage systématiquement : si vous ajoutez une ligne il suffit d'ajouter 1 dans Nb_Emis, si vous effacez ou que vous changez le présentateur il faudra faire -1.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2007
    Messages
    915
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 915
    Par défaut
    Merçi pour votre réponse, j'ai fait comme vous dites et ça marche en effet, merçi donc !!!
    Pourriez vous me donner la procédure à suivre pour écrire un trigger qui enchaine un autre, je n'arrive pas à trouver ça.
    MErçi
    A +

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

Discussions similaires

  1. PL/SQL problème sur Trigger
    Par kitsune dans le forum PL/SQL
    Réponses: 4
    Dernier message: 06/12/2005, 20h35
  2. [9i] problème avec trigger after logon
    Par Michael# dans le forum Oracle
    Réponses: 2
    Dernier message: 17/03/2005, 12h14
  3. [Interbase6] Problème de triggers
    Par emeraudes dans le forum Bases de données
    Réponses: 4
    Dernier message: 08/03/2005, 09h52
  4. [SQLPLUS] - Problème de Triggers Java
    Par farcis dans le forum Oracle
    Réponses: 7
    Dernier message: 23/12/2004, 09h21
  5. [PL/SQL] problème de trigger
    Par Chuck67 dans le forum Oracle
    Réponses: 14
    Dernier message: 09/12/2004, 23h17

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