Créer une clé primaire auto-incrémentée

bonjour,

j'ai créé une table avec une clé primaire auto-incrémentée, mais quand je supprime une ligne, la clé ne se met pas à jour pour les lignes suivantes. Comment faire pour que ce soit le cas ?

exemple :
1>>pierre
2>>jean
3>>Philippe

si je supprime la ligne 2, j'obtiens ceci :
1>>pierre
3>>Philippe

Comment faire pour que Philippe passe automatiquement à 2 ?

ps : j'utilise phpmyadmin
merci

3 réponses

  1. Contributeur
    bonjour, la clé primaire est permanente, elle ne va en principe jamais changer, en tous cas pas automatiquement. cela lui permet de servir de référence unique et permanente pour chaque enregistrement.
    peux-tu expliquer ce que tu veux obtenir? une sorte de numéro d'ordre qui peut changer d'un moment à l'autre?
    0
    1. Modérateur
      Bonjour,

      Il n'y a aucun interet à recalculer les ID ....
      Bien au contraire c'est une source d'erreurs !

      Par exemple, tu as une table utilisateur
      1>>pierre
      2>>jean
      3>>Philippe

      une table groupe
      1>>Admin
      2>>Modérateur
      3>>invité

      et une table memberofgroup (id_groupe, id_user )
      1>> 3
      1>>2
      2>>3
      1>>1
      etc...

      Si tu supprime le user 2... et que tu fais le recalcul .. alors l'association GROUPE / USER ne sera plus en concordance....
      0
      1. ok. merci à tous pour vos réponses.

        néanmoins, j'ai une autre question :
        quand je crée la clé primaire sur phpmyadmin, je dois saisir une option "size". Sur le net, j'ai vu que les gens mettaient 255, mais je voudrais savoir à quoi ça correspond. Est-ce que c'est la limite de la clé primaire ? (il ne peut pas y avoir plus de 255 lignes dans ma table ?)
        0
    2. Attention, si tu fais cela, les jointures avec tes autres tables seront incorrectes, comme le dit Jordane d'ailleurs.

      Concrètement, pourquoi veux-tu qu'il n'y ait pas de trou dans ta clé primaire?

      0
      1. Modérateur
        Hello,
        Le "pourquoi" est simple à comprendre ....; c'est juste une erreur faite par tous (ou presque...) les débutants.
        Je pense que nos multiples explications suffiront à lui faire changer d'avis ... et à laisser mysql gérer les id auto-incrémenté comme un grand. :-)
        0