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 :

[Débutant] auto incrémentation (intégré FAQ)


Sujet :

Oracle

  1. #1
    Membre actif Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Points : 246
    Points
    246
    Par défaut [Débutant] auto incrémentation (intégré FAQ)
    bonjour!
    je suis debutante sous oracle et je souhaite que lorsque j'insere un nouvel enregistrement dans ma base, son identifiant soit automatiquement généré par auto-incrementation.
    pour cela je suppose qu'il faut utiliser un trigger before update mais je ne vois pas trop comment me depatouiller avec la chose... (je n'en ai jamais fait en realite...)

    PS: j'ai vu sous google que le sujet avait deja ete abordé mais je ne l'ai malheureusement pas retrouvé... Par consequent je suis desolee de poser une question qui a probablement ete maintes fois posees...

  2. #2
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut
    Voilà le code pour incrémenter un identifiant automatiquement. Il faut en effet créer un trigger, mais également une séquence.


    CREATE SEQUENCE masequence;

    create trigger montrigger
    before insert on matable for each row
    begin
    select masequence.nextval into :new.monidentifiant from dual;
    end;
    /

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Tu crées une séquence et dans le trigger tu fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    BEGIN
      SELECT masequence.nextval
      INTO :new.id
      FROM dual;
    END;
    /
    le forum regorge d'exemples

  4. #4
    Membre actif Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Points : 246
    Points
    246
    Par défaut
    Plus rapides que l'éclair!

    merci!!
    je ne connaissais meme pas l'existence de sequence... je me coucherai moins bete!

    Merci pour la soluce !!

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Citation Envoyé par gorthaur
    Voilà le code pour incrémenter un identifiant automatiquement. Il faut en effet créer un trigger, mais également une séquence.


    CREATE SEQUENCE masequence;

    create trigger montrigger
    before insert on matable for each row
    begin
    select masequence.nextval into :new.monidentifiant from dual;
    end;
    /
    Bravo pour la réponse mais pensez à utiliser les balises code qui facilite la lecture

  6. #6
    Membre actif Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Points : 246
    Points
    246
    Par défaut
    au risque d'etre embetante... le "from dual" : c'est quoi? et a quoi ça sert?
    (sinon ça fonctionne tres bien!)

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    dual est une table d'Oracle qui est vide et qui ne sert qu'à appeler des fonctions simplement

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT sysdate FROM dual;
     
    SELECT 'toto' FROM dual;

  8. #8
    Membre actif Avatar de LineLe
    Inscrit en
    Septembre 2003
    Messages
    285
    Détails du profil
    Informations personnelles :
    Âge : 41

    Informations forums :
    Inscription : Septembre 2003
    Messages : 285
    Points : 246
    Points
    246
    Par défaut
    encore une subtilité d'oracle que je ne connaissais pas...
    Je crois que j'ai encore beaucoup de boulot devant moi!!
    merci pour la précision

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

Discussions similaires

  1. changer la clé primaire d'une table avec une clé auto-Incré
    Par DécisionBI dans le forum Administration
    Réponses: 1
    Dernier message: 01/08/2013, 10h24
  2. Champ auto incr. dans une requete Select
    Par oumlike dans le forum Firebird
    Réponses: 4
    Dernier message: 13/06/2011, 13h21
  3. Réponses: 7
    Dernier message: 26/10/2006, 16h50
  4. Réponses: 2
    Dernier message: 05/10/2004, 22h43

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