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 :

Insérer une série de valeur


Sujet :

Oracle

  1. #1
    Futur Membre du Club
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Insérer une série de valeur
    Bonjour,

    Je souhaite insérer dans une table A les données d'une table B.

    J'ai 3 champs dans ma table B et 4 champs dans ma table A.

    Le quatrième champ est un identifiant qui ne peut être null. J'aimerai l'incrémenter de manière automatique(1,2,3,4...) lors de mon insert. Dois-je passer par la création d'une séquence, d'un trigger, ou existe-t-il qqchose de moins compliqué?

    Merci d'avance.

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Citation Envoyé par Lancelot du Lac35 Voir le message
    Dois-je passer par la création d'une séquence, d'un trigger, ou existe-t-il qqchose de moins compliqué ?
    Ça dépend de votre version, en 12c Oracle a (enfin) simplifié l'implémentation des clefs subrogées.
    Avant cette version, il faut en effet combiner une séquence à un déclencheur.

  3. #3
    Futur Membre du Club
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Merci pour ces informations.

    Donc à priori, je viens de vérifier, je suis en Oracle 11g. Du coup la procédure serait la suivante :

    - Création d'une séquence avec incrémentation de +1
    - Création d'un trigger faisant appel à cette séquence lors d'un insert

    Je vois bien comment créer la séquence, par contre je n'ai jamais créer de trigger. Avez-vous des conseils?

    Merci

  4. #4
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Ce n'est pas très compliqué :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE SEQUENCE t1_id_seq;
     
    CREATE TRIGGER trigger_name
      BEFORE INSERT ON t1
      FOR EACH ROW
    BEGIN
        :new.id := t1_id_seq.nextval;
    END;
    /

  5. #5
    Futur Membre du Club
    Inscrit en
    Février 2012
    Messages
    15
    Détails du profil
    Informations forums :
    Inscription : Février 2012
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    Je viens de créer ma séquence + mon premier trigger!

    Merci beaucoup pour le coup de main.

    ++

  6. #6
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Insert into table A 
    Select col1, col2, col3, rownum 
      from table B

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

Discussions similaires

  1. Méthode d'interpolation a partir d"une série de valeurs
    Par User dans le forum Algorithmes et structures de données
    Réponses: 55
    Dernier message: 18/03/2008, 09h00
  2. Une série de valeurs pour obtenir une valeur X
    Par Geno312 dans le forum Mathématiques
    Réponses: 22
    Dernier message: 01/10/2007, 22h09
  3. Réponses: 2
    Dernier message: 23/04/2007, 14h26
  4. [Excel] Insérer une série de liens hypertextes
    Par PedroBD dans le forum Excel
    Réponses: 2
    Dernier message: 15/11/2006, 09h38
  5. Evaluer une série de valeurs dans une StringGrid
    Par fermat dans le forum Delphi
    Réponses: 1
    Dernier message: 24/09/2006, 18h35

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