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/10/2007, 13h15   #1
Candidat au titre de Membre du Club
 
Inscription : mars 2007
Messages : 42
Détails du profil
Informations forums :
Inscription : mars 2007
Messages : 42
Points : 10
Points : 10
Par défaut Réindexation après un remove ?

Bonjour,

je suis débutant en mysql, et j'ai (déjà) un questionnement existentiel :

j'ai une base de donnée contenant 5 champs, dont un champs ID, qui est une clé primaire, et aussi autoincrémanté.

Dans le script php que je conçois, il sera possible de supprimer des entrées dans cette BdD. Le problème, c'est que mon indexation est primordiale : il faut absolument que, si je supprime une entrée au milieu, toutes les entrées suivantes doivent voir leur index décrémenté de 1.

Les remove seraient assez rares, et les entrées pas super nombreuse donc c'est pas tellement grave si c'est lourd (parce que je pense qu'il va falloir s'attaquer à tous les index un à un). Est ce que MySQL fait ça tout seul, ou bien est ce qu'il faut que je code une boucle dans mon script php afin qu'il réindexe tout seul les entrées qui suivent l'effacement ?

Merci pour votre aide !
Cooky est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/10/2007, 21h59   #2
Rédacteur/Modérateur

 
Avatar de Antoun
 
Homme Antoine Dinimant
Consultant en Business Intelligence
Inscription : octobre 2006
Messages : 5 854
Détails du profil
Informations personnelles :
Nom : Homme Antoine Dinimant
Âge : 42
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Consultant en Business Intelligence
Secteur : Conseil

Informations forums :
Inscription : octobre 2006
Messages : 5 854
Points : 9 540
Points : 9 540
Citation:
Envoyé par Cooky Voir le message
Bonjour,
Dans le script php que je conçois, il sera possible de supprimer des entrées dans cette BdD. Le problème, c'est que mon indexation est primordiale : il faut absolument que, si je supprime une entrée au milieu, toutes les entrées suivantes doivent voir leur index décrémenté de 1.
pour rester dans l'existentiel : tu confonds indexation et numérotation, qui n'ont rien à voir.

Citation:
Envoyé par Cooky Voir le message
Les remove
on appelle ça des DELETE
Citation:
Envoyé par Cooky Voir le message
seraient assez rares, et les entrées pas super nombreuse donc c'est pas tellement grave si c'est lourd (parce que je pense qu'il va falloir s'attaquer à tous les index un à un). Est ce que MySQL fait ça tout seul
que nenni ! Le principe est que "les clés consommées ne sont jamais ré-attribuées". En effet, la clé auto-incrémentée a pour rôle d'identifier chaque ligne de manière unique. Cela suppose donc que, par exemple, la ligne d'ID 6 reste toujours la même et ne s'amuse pas à devenir la 5 ou la 7.
Citation:
Envoyé par Cooky Voir le message
, ou bien est ce qu'il faut que je code une boucle dans mon script php afin qu'il réindexe tout seul les entrées qui suivent l'effacement ?
tu peux mettre un trigger sur la table pour qu'elle le fasse. Mais le mieux serait sans doute de revoir ton code PHP pour ne pas avoir besoin que les ID se suivent.
__________________
Antoun
Expert SQL, BO, Essbase

La bible d'Essbase est parue !
Antoun est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h41.


 
 
 
 
Partenaires

Hébergement Web