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

Requêtes MySQL Discussion :

Comment faire pour savoir d'avance quelle sera le prochaine ID généré ?


Sujet :

Requêtes MySQL

  1. #1
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut Comment faire pour savoir d'avance quelle sera le prochaine ID généré ?
    Bonjour,

    Dans une table, j'ai un ID qui s'incrémente automatiquement.
    Lorsque d'un enregistrement, cette ID ce créer automatiquement par la base (exemple : 10).
    Lorsque je supprime le dernier enregistrement et que je fais un autre enregistrement, l'ID est à 11 au lieu de 10.

    Ma question :

    Comment faire pour savoir d'avance quelle sera le prochaine ID généré ?

    Merci d'avance

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    181
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 181
    Points : 189
    Points
    189
    ...

  3. #3
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    ok, j'ai vu ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX( `ID` ) FROM prestation
    c'est bien fiable ?

    Après avec du php j'atoute +1.

    D'ailleur, avec du php, pour avoir la donnée je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = '  SELECT MAX( `prestation_ID_prestation` )
              FROM prestation ';
    $reponse = mysql_query($sql) or die('Erreur MySQL : ' . mysql_error());
    while ($donnees = mysql_fetch_array($reponse))
    {
    	echo $donnees['MAX( `prestation_ID_prestation` )'] + 1;
    }
    Mais je n'arrive pas à afficher l'information.

    Comment on fait ?

  4. #4
    Rédacteur/Modérateur

    Avatar de Antoun
    Homme Profil pro
    Architecte décisionnel
    Inscrit en
    Octobre 2006
    Messages
    6 284
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Architecte décisionnel
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 6 284
    Points : 11 743
    Points
    11 743
    Par défaut
    Citation Envoyé par arnaudperfect Voir le message
    ok, j'ai vu ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT MAX( `ID` ) FROM prestation
    c'est bien fiable ?
    Absolument pas ! Si deux utilisateurs interrogent la base en même temps, ils obtiendront le même MAX(ID), alors que lorsqu'ils feront leur insertion l'un aura vraiment une ID égal à Max + 1, mais l'autre aura Max + 2.

    Il n'y a pas de moyen de connaître à l'avance l'ID qui sera attribuée. La bonne pratique consiste à laisser MySQL attribuer son ID automatique lors de l'insertion, et récupérer ensuite l'ID attribuée avec mysql_insert_id (en PHP) ou LAST_INSERT_ID (en SQL).
    cf http://mysql.developpez.com/faq/?pag...CREMENT_insert

    Citation Envoyé par arnaudperfect Voir le message
    Après avec du php j'atoute +1.

    D'ailleur, avec du php, pour avoir la donnée je fais comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $sql = '  SELECT MAX( `prestation_ID_prestation` )
              FROM prestation ';
    $reponse = mysql_query($sql) or die('Erreur MySQL : ' . mysql_error());
    while ($donnees = mysql_fetch_array($reponse))
    {
    	echo $donnees['MAX( `prestation_ID_prestation` )'] + 1;
    }
    Mais je n'arrive pas à afficher l'information.

    Comment on fait ?
    En l'occurence ça ne sert à rien, mais dans le cas général, pour récupérer le résultat d'une colonne calculée, on lui donne un alias :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $sql = '  SELECT MAX( `prestation_ID_prestation` ) AS MaxID
              FROM prestation ';
    ...
    echo $donnees['MaxID'] ;
    Antoun
    Expert Tableau, Essbase, BO, SQL

    La bible d'Essbase, 2ème édition

  5. #5
    Membre actif
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Décembre 2006
    Messages
    1 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Seine Maritime (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 080
    Points : 287
    Points
    287
    Par défaut
    ok merci de l'info !

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/03/2012, 21h06
  2. Réponses: 2
    Dernier message: 14/11/2009, 19h40
  3. Quelle technologie, comment faire pour créer un CD simple d'emploi ?
    Par petitours dans le forum Langages de programmation
    Réponses: 13
    Dernier message: 17/10/2007, 14h34
  4. Comment faire pour savoir si on est connécté à un FTP ?
    Par MegaBigBoss dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 23/08/2006, 20h33
  5. Comment faire pour savoir quel processus utilise un DLL
    Par Furius dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 02/11/2005, 18h03

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