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 :

INSERT INTO numéro auto.


Sujet :

Langage SQL

  1. #1
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut INSERT INTO numéro auto.
    Bonjour,

    J'ai un petit problème avec une requete qui apprait assez simple en SQL! Je veux ajouter une ligne dans une table qui possède des champs dont un qui s'incrément automatiquement.

    Le problème c'est que je dois écrire en dur le numéro! Comment faire pour que le SGBD le fasse tout seul???

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    Voici la première requete que j'ai utilisé:
    INSERT INTO CLIENT ( NoClient, NomClient, PrenomClient, AdresseClient, CodePostalClient, VilleClient, TelephoneClient, FaxClient )
    VALUES (5, 'TestNom', 'TestPrenom', 'TestAdresse', 58500, 'TestVille', '03655654', ' ');
     
    Voici une version plus sophistiqué mais cela ne fonctionne pas:
    INSERT INTO CLIENT ( NoClient, NomClient, PrenomClient, AdresseClient, CodePostalClient, VilleClient, TelephoneClient, FaxClient )
    SELECT MAX(NoClient), 'TestNom', 'TestPrenom', 'TestAdresse', 'TestCP', 'TestVille', 'TestTel', 'TestFax'
    FROM CLIENT;
    Merci d'avance

  2. #2
    Membre expert
    Avatar de LeoAnderson
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 938
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 938
    Points : 3 199
    Points
    3 199
    Par défaut
    ça dépend du SGBD !

    Par exemple, pour Oracle, la numérotation auto. n'existe pas ! il faut écrire des procédures qui s'en chargeront....

  3. #3
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Je suis sous Access en ce moment mais la base sera migrer sous oracle d'ici quelques temps! Ce que je recherche ce sont donc des requêtes qui fonctionne aussi bien sous Access que sous Oracle pour éviter les problèmes d'incompabilité ennuyant!

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    956
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 956
    Points : 1 199
    Points
    1 199
    Par défaut
    Si c'est un numéro automatique, géré par le SGBD, il suffit de ne pas mettre le champ autoincrémenté, ni dans la liste de champ, ni dans la liste de valeur.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    INSERT INTO CLIENT ( NomClient, PrenomClient, AdresseClient, CodePostalClient, VilleClient, TelephoneClient, FaxClient ) 
    VALUES ( 'TestNom', 'TestPrenom', 'TestAdresse', 58500, 'TestVille', '03655654', ' ');
    Mais quel est ton problème ?
    1/Créer dans une table un champ auto incrémenté. Ce qui effectivement dépend du SGBD
    2/Créer des lignes dans une table contenant un champ autoalimenté.
    Là je n'ai répondu qu'au 2.

    A+
    Soazig

  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 : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    impossible, cela fonctionne différemment sur selon le SGBD.

    Il existe un type spécifique sous Access (cf forum ad hoc) alors que sous Oracle il faut créer une séquence et insérer la_sequence.nextval (cf forum ad hoc )

  6. #6
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Mon problème c'est juste d'inserer des lignes c'est tout!
    je me rend compte que cela ne semble pas si simple, la requete sous oracle donnerait quoi?

  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 : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    insert into matable (id_incremente,col1,..., coln)
    select masequence.nextval, col1',...,coln')
    ou alors créer un trigger mais là je te renvoie une nouvelle fois au forum Oracle

  8. #8
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Et sous access la requete donne quoi parce que apparemment il faut renseigner tous les champs de la table???

  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
    aucune idée, c'est le forum SQL ici

  10. #10
    Membre actif
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2004
    Messages
    477
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Service public

    Informations forums :
    Inscription : Février 2004
    Messages : 477
    Points : 223
    Points
    223
    Par défaut
    Ok Merci a tous

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

Discussions similaires

  1. [VBA]INSERT INTO et récupération d'id auto
    Par norkius dans le forum Access
    Réponses: 8
    Dernier message: 24/02/2013, 19h17
  2. insert into via un select soucis auto increment
    Par maysa dans le forum Requêtes
    Réponses: 6
    Dernier message: 07/03/2011, 20h41
  3. Insertion avec numéro auto
    Par Imageek dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 02/04/2010, 15h32
  4. insert avec numéro auto violation de clé
    Par cgodefrw dans le forum Access
    Réponses: 4
    Dernier message: 25/01/2007, 15h28
  5. Récupérer le numéro auto lors d'une insertion
    Par zoidy dans le forum Access
    Réponses: 5
    Dernier message: 27/04/2006, 11h20

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