Id auto incrementé

Jule -  
 Radical -
Bonjour,

J'ai besoin de votre aide sur les id auto-incrementés, en effet je voudrais trouver un moyen de connaitre quel sera l'id de la prochaine ligne que je créerais dans ma bdd.

Car avec mysql_num_rows si certaines lignes sont supprimées la réponse sera faussée.

Merci.
Configuration: Windows XP
Firefox 3.5

8 réponses

  1. giheller Messages postés 1892 Date d'inscription   Statut Membre Dernière intervention   146
     
    bonjour,

    select max(id) from matable;
    0
  2. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    Nonb le max(id) ne marche pas si la dernière ligne a été supprimée !

    c'est une base mysql ?
    si oui, essayes ca :

    SELECT AUTO_INCREMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = 'nom_de_table'
    0
    1. giheller Messages postés 1892 Date d'inscription   Statut Membre Dernière intervention   146
       
      Bonjour
      OK mais là on génère soi même des "trous".
      la question est peut être faut-il conserver par ce biais une trace des id créés puis supprimés ?
      0
      1. Radical > giheller Messages postés 1892 Date d'inscription   Statut Membre Dernière intervention  
         
        Bonjour,

        Tu peux aussi tu utiliser des séquences et utiliser les directives CURVAL NEXTVAL etc ...
        0
  3. garf
     
    en fait c'est très simple :
    - ton champ id doit avoir comme propriétés : auto-increment et valeur unique.
    ainsi à la prochaine insertion dans la base, la champ id sera automatiquement incrémenté à la prochaine valeur de libre

    si tu veux récupérer l'id de cette insertion, il suffit d'utiliser la propriété php "mysql_insert_id "
    0
  4. Jule
     
    En fait je voudrais plutôt pouvoir trouver l'id de la prochaine entrée que je ferais. Admettons j'ai créé 6 lignes, j'en ai supprimé 2, l'id de ma prochaine ligne sera 7 et je voudrais le savoir avant de l'inserer.

    Je suis sous sql serveur.

    Merci à tous pour votre aide. J'ai regardé sur php.net et je n'ai pas trouvé de fonction permettant de faire ça.
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Radical
     
    Essaye de repéré l'id de ta séquence et exécute cette requete ...

    SELECT CURRVAL('id_de_ta_seq'');
    0
  7. Jule
     
    Warning: mssql_query() [function.mssql-query.html]: message: 'NEXTVAL' n'est pas une option nom de fonction intégrée reconnue.

    Nextval et currval ne sont pas uniquement disponible chez Oracle?
    0
    1. Radical
       
      Si jules, un peu trop d'habitude avec les serveurs oracle, mais la contrepartie existe en mysql ...
      0
  8. jeangilles Messages postés 816 Date d'inscription   Statut Membre Dernière intervention   186
     
    Tu devrais peut être aller faire un tour par ici :
    http://wiki.coolforest.net/index.php?title=Sql_Server_-_R%C3%A9cup%C3%A9rer_last_ID
    0