|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 138 ![]() |
Bonjour à tous,
J'utilise PhpMyAdmin pour manipuler mes tables. Mon problème est lorsque je supprime une ligne de la table, je veux que l'identifiant de la ligne suivante soit modifié. càd: J'ai 4 enregistrements dans la table: 1,2,3,4. Je supprime le 3ème enregistrement. Il reste les enregistrements :1,2,4 Je veux que l'id de l'enregistrement 4 soit 3, càd que la table contienne : 1 , 2, 3. Sachant que l'id est AUTO_INCREMENT merci de m'aider |
|
|
00
|
|
|
#2 |
![]() ![]() |
Il ne faut JAMAIS faire cela sur une base de données utilisée en production !
L'identifiant auto-incrémenté est une clé qui est sans signification pour l'utilisateur et ne doit jamais lui être présentée. Elle ne sert qu'aux opérations du SGBD pour référence dans les clés étrangères des autres tables et dans les opérations de jointure, ainsi que comme identifiant intrinsèque au programme utilisateur (l'option "Renault" dans la liste déroulante des marques de voitures a pour valeur l'identifiant "Renault" dans la table des marques de voitures mais l'utilisateur n'a pas à le savoir). Si tu modifies une clé primaire auto-incrémentée, tu dois aussi assurer la cohérence des données qui référencent cette clé dans les autres tables donc modifier les clés étrangères. C'est possible et prévu par les SGBD mais c'est du boulot inutile. Si tu veux garder un ordre à tes données, crée une colonne pour ça.
__________________
Philippe Leménager. Ingénieur d'étude à l'École Nationale de Formation Agronomique. Mon blog sur la conception des BDD, le langage SQL, le PHP avec Zend Framework... « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau) À la maison comme au bureau, j'utilise Mandriva Linux ou Mageïa ! Soutenons l'industrie logicielle française ! Linuxiens, comptez-vous ! |
|
00
|
|
|
#3 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
Laissez votre Id, identifiant technique tranquille... Il assure l'unicité, l'intégrité de vos relations...
Si vous le souhaitez, vous pouvez ajouter un identifiant fonctionnel dans une colonne, que vous pourrez triturer a loisir (via un trigger par exemple) Bon courage Edit : Doublon avec CinePhil
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
|
|
#4 | |
|
Invité régulier
![]() Inscription : mars 2011 Messages : 138 ![]() |
Citation:
|
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Yannick Ingénieur Etudes & Developpements Inscription : février 2006 Messages : 1 125 ![]() |
D'ou le fait d'utiliser un identifiant fonctionnel, celui qui vous servira à afficher vos données. Pour les manipulations, vous devrez récupérer l'identifiant technique associé à votre id fonctionnel dans la table. Cependant et comme le dit CinePhil, il sera à votre charge de gérer l'intégrité de cette donnée (notamment en cas de modifications multi-utilisateurs).
Bon courage
__________________
Dans la connaissance du monde, ceux qui ne savent rien en savent toujours autant que ceux qui n'en savent pas plus qu'eux. (Pierre Dac) |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com