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

artemis0 Messages postés 903 Date d'inscription   Statut Membre Dernière intervention   -  
artemis0 Messages postés 903 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

3 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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
artemis0 Messages postés 903 Date d'inscription   Statut Membre Dernière intervention   179
 
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
Ikebukuro Messages postés 32 Date d'inscription   Statut Membre Dernière intervention   4
 
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
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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