mysql: auto_increment

mysql: auto_increment - Programmation

Marsh Posté le 30-03-2002 à 13:11:01    

bon alors le truc c'est que je voudrais savoir comment réinitialiser mon Id ( qui est auto_incrementé ) à 0 .
 
Ca pose problème car lorsque je supprime toutes mes entrées dans la table les Ids continuent à s'incrémenter mais ne reprennent pas à 0.
 
 
Merci les gars!

 

[jfdsdjhfuetppo]--Message édité par fabriceMerc--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 30-03-2002 à 13:11:01   

Reply

Marsh Posté le 30-03-2002 à 13:15:45    

c'est pas possible si c'est un index

Reply

Marsh Posté le 30-03-2002 à 13:24:49    

jai le meme probleme
ca sincrement par exemple jusqua 5 si je supprime le 5, la prochaine crée sera 6 c bizarre
 
donc voila
bon topic Fabrice ;)

Reply

Marsh Posté le 30-03-2002 à 13:28:48    

massanu a écrit a écrit :

jai le meme probleme
ca sincrement par exemple jusqua 5 si je supprime le 5, la prochaine crée sera 6 c bizarre
 
donc voila
bon topic Fabrice ;)  




 
le principe meme des bases de données de type mysql
 
quand tu supprime  une rangée, en fait ca supprime la rangée, mais l'espace libéré reste. Donc tu aura en quelque sortes un "trou"
 
exemple  
 
1 blabla test
2 blabla toto
3 test toto
4 gnagna hihi
 
 
 
je supprimer la 3
 
on aura donc
 
1 blabla test
2 blabla toto
 
4 gnagna hihi
 
 
le trou de la suppression reste :)
 
si tu rajoute quelque chose, ca sera forcément apres la dernier ligne, donc
 
1 blabla test
2 blabla toto
 
4 gnagna hihi
5 haha toto
 
 
voilà A+

Reply

Marsh Posté le 30-03-2002 à 13:35:16    

ouais c assez relou
ya pas une feinte pour detourner ca ?

Reply

Marsh Posté le 30-03-2002 à 13:49:46    

mais moi je supprime toutes les entrées dans la base , il y a donc plus de trous mais cela s'incremente quand même!!!!!!

Reply

Marsh Posté le 30-03-2002 à 13:52:00    

fabriceMerc a écrit a écrit :

mais moi je supprime toutes les entrées dans la base , il y a donc plus de trous mais cela s'incremente quand même!!!!!!  




les trous tu les vois pas, je les ai montré explicitement, mais il n'apparaissent pas, c comme ca que c organisé ds le fichier de ta base de données

Reply

Marsh Posté le 30-03-2002 à 13:53:14    

bon de toute facon cela pose pas de probleme .

Reply

Marsh Posté le 30-03-2002 à 14:03:13    

ca pose probleme pour moi par exemple
si on fait un systeme de news  
 
et que sur la page des news on fait un lien vers la news suivante, et bien si ta ca
 
1 news1
2 news2
 
4 news4
 
sur la page de la news2 yaura un lien qui pointera vers la 3 et non pas vers la 4 c ca le probleme.
tu voit ce que je veut dire

Reply

Marsh Posté le 30-03-2002 à 14:56:43    

Il est possible de forcer, lors de la création d'un nouvel enregistrement, la valeur d'un champ en auto_increment. Je ne sais pas quel est l'objectif exact, mais un petit algo tout con peut permettre de détecter les "trous" et éventuellement les remplir, ou alors ne pas utiliser l'option auto_increment et tout faire "à la main".

Reply

Marsh Posté le 30-03-2002 à 14:56:43   

Reply

Marsh Posté le 30-03-2002 à 15:02:03    

massanu a écrit a écrit :

ca pose probleme pour moi par exemple
si on fait un systeme de news  
 
et que sur la page des news on fait un lien vers la news suivante, et bien si ta ca
 
1 news1
2 news2
 
4 news4
 
sur la page de la news2 yaura un lien qui pointera vers la 3 et non pas vers la 4 c ca le probleme.
tu voit ce que je veut dire  




Tu peux modifier ta table et ajouter un colonne "NewsSuivante" ou alors faire un script qui teste tous les numéros jusqu'à en trouver un valide. Ex: Tu te trouves sur la page 3, tu veux la suivante, mais la 4 n'existe plus: Tu lances une requ^ete pour savoir si la page identifiée par le numéro suivant la page courante (4 en l'occurence) existe. Ce n'est pas le cas, donc tu testes la page 5, etc. jusqu'à trouver une page valide (en s'assurant de ne pas ^etre sur la dernière page, bien s^ur! ;) )

Reply

Marsh Posté le 04-04-2002 à 13:29:27    

Meme soucis :(
 
C pas aussi derangeant chez moi mais j'aurais bien voulu y remedier.
 
Je modifie la valeur des mes id et les retrie a la main, pkoi ca n'efface pas ces "trous"?

Reply

Marsh Posté le 04-04-2002 à 14:03:43    

massanu a écrit a écrit :

jai le meme probleme
ca sincrement par exemple jusqua 5 si je supprime le 5, la prochaine crée sera 6 c bizarre  



C'est bizarre, chez moi c'est l'inverse. Si je supprime le dernier, le compteur revient un cran en arrière.
Ce qui me pose d'ailleurs problème.

Reply

Marsh Posté le 04-04-2002 à 14:47:11    

massanu a écrit a écrit :

ca pose probleme pour moi par exemple
si on fait un systeme de news  
 
et que sur la page des news on fait un lien vers la news suivante, et bien si ta ca
 
1 news1
2 news2
 
4 news4
 
sur la page de la news2 yaura un lien qui pointera vers la 3 et non pas vers la 4 c ca le probleme.
tu voit ce que je veut dire  




 
C'est pas vraiement un problème d'auto-incréméntation çà !
 
Si tu as 4 news 1, 2, 3 et 4, et qua chacunne pointe sur la suivante :
 
Vers quoi pointe la 4 ?
Si tu suprime la 3 tu veux que la base fasse automatiquement pointer la 2 sur la 4, ou que la 4 devienne un 3 automatiquement ?
 
Dans ce dernier cas, que divient un enreg dans une autre table, qui pointait vers la 4 ?
 
L'autoincrémentation t'assure que deux enregs n'ont pas la même valeur sans que tu ais besoin de la caluler, c'est tout.
 
Pour supprimer les trous, la seule solution, c'est de recopier dans une autre table, mais il fait alors penser à faire suivre les relations !

 

[jfdsdjhfuetppo]--Message édité par Mara's dad--[/jfdsdjhfuetppo]


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed