Créer une clé primaire auto-incrémentée [Fermé]

Signaler
Messages postés
882
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
28 juillet 2018
-
artemis0
Messages postés
882
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
28 juillet 2018
-
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

Messages postés
9710
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
23 février 2020
534
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?
Messages postés
27650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2020
2 133
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....
artemis0
Messages postés
882
Date d'inscription
vendredi 3 janvier 2014
Statut
Membre
Dernière intervention
28 juillet 2018
109
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 ?)
Messages postés
26
Date d'inscription
jeudi 10 janvier 2008
Statut
Membre
Dernière intervention
6 avril 2017
3
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?
jordane45
Messages postés
27650
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
23 février 2020
2 133
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. :-)