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 :

incrementation


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut incrementation
    salut je chercha a faire une incrementation
    sous oracle sur une clé primaire

    comment fait on ?

    se fait elle incrementation si on aliment tout les autres lément de la table sans touché la clé primaire


    merci a vous

  2. #2
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Bonjour,


    Ce sujet a déjà été traité, par ex. http://www.developpez.net/forums/vie...+before+insert


    Laly.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    create trigger montrigger
    before insert on table for each row
    begin
    select sqetest.nextval into :new.num_t from dual;
    end;
    /


    avec ce code oracle me fait une erreur " privilege isufissant sur test "

    alors que j'ai cree cette table

  4. #4
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Est-ce-que tu as le privilège CREATE TRIGGER ?


    Laly.

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    je vient de rajouter le privilege manquant

    mais lorsque je veut inserer une donner dans la table qui possede 2 attrbut . une clé primaire et un autre attribut


    j'alimente le 2 eme attribut mais la clé primaire de s'incremente pas


    mercia vous

  6. #6
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    C'est que ton trigger n'a pas fonctionné, tu es sûr qu'il a bien compilé, tu n'as eu aucun msg d'erreur ?

    Regardes :
    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    SQL> create table test (pk number, y varchar2(100));
     
    Table created.
     
    SQL> create sequence seq_test;
     
    Sequence created.
     
    SQL> create or replace trigger ti_test before insert on test for each row
      2  begin
      3     select seq_test.nextVal into :new.pk from dual;
      4  end;
      5  /
     
    Trigger created.
     
    SQL> insert into test(y) values('Hello 1?');
     
    1 row created.
     
    SQL> insert into test(y) values('Hello 2?');
     
    1 row created.
     
    SQL> select * from test;
     
            PK                                                                      
    ----------                                                                      
    Y                                                                               
    --------------------------------------------------------------------------------
             1                                                                      
    Hello 1?                                                                        
     
             2                                                                      
    Hello 2?

    Laly.

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    create trigger trigtt before insert on test for each row
    begin
    select testtrig .nextval into : new.num_t from dual
    end
    /

    apres executer ce code


    il me fait une erreur

    Avertissement : Déclencheur créé avec erreurs de compilation.


    avant j'ai cree un table test ( num_t , nom)


    merci a vous

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    24
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 24
    Points : 15
    Points
    15
    Par défaut
    insert into test (nom) values ('coucou') ;


    avec cette commande j'ai une erreur

    la voila

    ORA-04098: Déclencheur 'TEST1.TRIGTEST' non valide. Echec de la revalidation

  9. #9
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    merci d'utiliser les balises codes

  10. #10
    Membre expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Points : 3 609
    Points
    3 609
    Par défaut
    Citation Envoyé par doudou1
    Avertissement : Déclencheur créé avec erreurs de compilation.
    Peux-tu nous indiquer ce que te renvoie la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from user_errors where name = 'trigtt';
    C'est vrai orafrance que c'est tout de suite plus beau avec les balises code !!!

  11. #11
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    testtrig .nextval
    vu comme tel l'espace entre testtrig et .nextval est en trop.

    d'où l'utilité de na pas donner le code approximatif ressaisi mais de faire un copier/coller de l'ensemble du code. vous ferez gagner du temps à tout le monde.

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

Discussions similaires

  1. auto-increment
    Par fafet dans le forum Requêtes
    Réponses: 2
    Dernier message: 11/07/2003, 16h05
  2. [MYSQL] valeur auto-increment
    Par alex1er dans le forum Requêtes
    Réponses: 5
    Dernier message: 10/07/2003, 13h26
  3. Auto Increment
    Par Guizz dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 23/06/2003, 19h36
  4. Nom du champs auto-incrementé
    Par norroy dans le forum Requêtes
    Réponses: 2
    Dernier message: 17/06/2003, 19h30
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 13h05

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