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

Langage SQL Discussion :

[Oracle] Insertion d'une sequence


Sujet :

Langage SQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut [Oracle] Insertion d'une sequence
    Bonsoir,

    J'ai une table avec 3 colonnes La table ne possede aucune clé primaire ou etrangére).
    - Table : Client
    - Colonne : ID, Non, prénom.
    Le colonne ID est vide dans toute ma table.

    ex:
    ID Nom Prenom
    Mallet Julien
    Blanc Laurent
    ..........................

    Je souhaite alimenter ma colonne Id avec une valeur incrementale. Je ne vois pas trop comment le faire avec une simple requête SQL.

    Resultat souhaité.
    ex:
    ID Nom Prenom
    1 Mallet Julien
    2 Blanc Laurent
    ..........................

    Merci d'avance de votre aide.

  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
    Si vous alimentez votre table :
    - par une requête unique et une seule fois, vous pouvez utiliser des fonctions analytique comme row_number()
    - par des requêtes multiples, le plus simple est de créer une séquence.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    CREATE SEQUENCE Mon_ID
      START WITH 1
      MINVALUE 1
      NOCYCLE
      NOCACHE
      NOORDER;
    Et ensuite vous pouvez utiliser "Mon_ID.nextval" comme objet de requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into Client (ID, nom, prenom) values (Mon_ID.nextval, 'Mallet', 'Julien');
    insert into Client (ID, nom, prenom) values (Mon_ID.nextval, 'Blanc', 'Laurent');
    Attention, si vous appelez un nextval, que vous insérer une ligne et que finalement vous faites un rollback, votre ID sera néanmoins incrémenté.

  3. #3
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    58
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 58
    Par défaut
    Merci de votre aide, mais mon problème c'est que ma table est deja alimentée. il y'a que le champ ID qui est vide. et je souhaite le renseigner dans toutes ma table avec une valeur incrementale.

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Par défaut
    Bonsoir,

    Comment vous avez réussie à alimenter une table sans renseigner l'ID ???

    Il n'y aurait pas un soucis ? Quelle est la description de votre table ?

    « Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. »
    - Confucius -

    Les meilleurs cours, tutoriels et Docs sur les SGBD et le SQL
    Tous les cours Office
    Solutions d'Entreprise



  5. #5
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 952
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 952
    Par défaut
    Salut,
    Si tu as opté pour la séquence, Il suffit de faire un update :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    update Client set ID=Mon_ID.NEXTVAL;

  6. #6
    Invité de passage
    Inscrit en
    Octobre 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Octobre 2008
    Messages : 1
    Par défaut
    Bonjour,
    c'est le même pb que j'ai. En fait j'ai une table et je veux insérer un numéro automatique (numéro séquentiel de 1 jusqu'à un nombre égal au nombre des lignes de ce table).
    merci d'avance pour votre aide

Discussions similaires

  1. Insertion d'une date dans Oracle
    Par Pfeffer dans le forum ASP.NET
    Réponses: 2
    Dernier message: 27/09/2007, 16h21
  2. Réponses: 5
    Dernier message: 27/07/2007, 16h21
  3. insertion d'une date dans une BD oracle
    Par Houssem dans le forum JDBC
    Réponses: 4
    Dernier message: 09/05/2007, 08h53
  4. Optimisation d'une insertion dans une BD Oracle
    Par Hamma_TUN dans le forum Oracle
    Réponses: 5
    Dernier message: 13/07/2006, 10h55
  5. insertion d'une image dans developer oracle 10 suite g
    Par rethorique dans le forum Oracle
    Réponses: 2
    Dernier message: 18/06/2006, 15h17

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