Id auto incrementé

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. 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'
    1. 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 ?
    2. @gihellerBonjour,

      Tu peux aussi tu utiliser des séquences et utiliser les directives CURVAL NEXTVAL etc ...
  2. 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 "
    1. 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.
      1. Essaye de repéré l'id de ta séquence et exécute cette requete ...

        SELECT CURRVAL('id_de_ta_seq'');
        1. 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?
          1. Si jules, un peu trop d'habitude avec les serveurs oracle, mais la contrepartie existe en mysql ...
        2. 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