Précédent   Forum des professionnels en informatique > Bases de données > MySQL > Débuter
Débuter Forum d'entraide pour débuter avec MySQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 07/09/2011, 10h22   #1
Invité régulier
 
Inscription : mars 2011
Messages : 138
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 138
Points : 5
Points : 5
Par défaut incrémentation de l'identifiant

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
bennour.mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 10h46   #2
Modérateur
 
Avatar de CinePhil
 
Homme Philippe Leménager
Ingénieur d'études en informatique
Inscription : août 2006
Messages : 11 029
Détails du profil
Informations personnelles :
Nom : Homme Philippe Leménager
Âge : 48
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur d'études en informatique
Secteur : Enseignement

Informations forums :
Inscription : août 2006
Messages : 11 029
Points : 18 327
Points : 18 327
Envoyer un message via MSN à CinePhil
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 !
CinePhil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 10h57   #3
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h23   #4
Invité régulier
 
Inscription : mars 2011
Messages : 138
Détails du profil
Informations forums :
Inscription : mars 2011
Messages : 138
Points : 5
Points : 5
Citation:
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.
la cohérence des données dans les tables est facile à régler, mon problème est de modifier l'id, car dans mon application, je dois afficher les données enregistrées dans la table pour les modifier ou les supprimer, mais quand je supprime une ligne, il reste un blanc dans la table lors de l'affichage.
bennour.mohamed est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/09/2011, 11h32   #5
Membre Expert
 
Avatar de Yanika_bzh
 
Homme Yannick
Ingénieur Etudes & Developpements
Inscription : février 2006
Messages : 1 125
Détails du profil
Informations personnelles :
Nom : Homme Yannick
Localisation : France, Deux Sèvres (Poitou Charente)

Informations professionnelles :
Activité : Ingénieur Etudes & Developpements
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : février 2006
Messages : 1 125
Points : 1 670
Points : 1 670
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)
Yanika_bzh est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h13.


 
 
 
 
Partenaires

Hébergement Web