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

PL/SQL Oracle Discussion :

[Débutant+] Trigger un peu spécifique.


Sujet :

PL/SQL Oracle

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut [Débutant+] Trigger un peu spécifique.
    Hello!

    Je cherche à faire un trigger un peu spécifique, sur une base de donnée Oracle. J'ai une table qui est comme ceci :

    TABLE ( date, idUtilisateur, iLigne, CP, H)
    la primary key est l'ensemble {date, #idUtilisateur, iLigne}, avec idutilisateur la PK d'une autre table. Bref.
    J'aimerais faire un trigger qui avant chaque insertion dans cette table TABLE, vérifie s'il existe déjà une ligne avec le même couple d'attributs date et idUtilisateur que l'on cherche et insérer, et si c'est le cas, insérer donc une nouvelle ligne mais en incrémentant de +1 l'attribut iLigne par rapport à la valeur de la ligne correspondante.

    Help, mes amis! C'est du trop gros PL/SQL for me..


    Je developpe avec JDev11g mais je gére la db Oracle avec sqldevelopper 1.5.0.52

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Pas besoin d'un trigger, utilise une séquence pour alimenter iLigne.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 7
    Points : 6
    Points
    6
    Par défaut
    Yep. En plus je suis bête cet exemple était déjà dans la faq... (shame on me)

    J'ai donc copier collé, modifié, ce qui donne ceci :

    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
    CREATE SEQUENCE SEQ_CRAH_ILIGNE_AUTO_INCREMENT
      START WITH 1
      MAXVALUE 99
      MINVALUE 1
      NOCYCLE
      NOCACHE
      NOORDER;
     
    CREATE TRIGGER TRG_CRAH_ILIGNE
       BEFORE INSERT
       ON CRAH
       FOR EACH ROW
    BEGIN
       SELECT SEQ_CRAH_ILIGNE_AUTO_INCREMENT.NEXTVAL
         INTO :NEW.ILIGNE_PK
         FROM DUAL
         WHERE ********;
    END;

    Donc cela va bien s'incrémenter. C'est bien, et c'est même suffisant. J'aurais juste aimé que cela s'incrémente en fonction du couple {DATE, IDUSER}, mais bon je pinaille.

    Merci mister mnitu

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    La seule façon de faire ça correctement passe par une table de gestion d’un compteur. Mais cette solution est très peu « scalable ».

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

Discussions similaires

  1. [Validator][Débutant]Message un peu trop envahissant
    Par stardust dans le forum Struts 1
    Réponses: 1
    Dernier message: 27/11/2006, 15h26
  2. [SQL2005][débutant]Trigger ou procédure stockée
    Par DebutantDotNet dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 03/10/2006, 11h15
  3. [[Débutant]trigger+script]
    Par Shooter dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 28/04/2006, 12h08
  4. [oracle 8][débutant] Sélection un peu particulière
    Par ken_survivant dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/11/2004, 09h10

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