[MySQL] Modifier la valeur de l'AUTO_INCREMENT [résolu]

Modifier la valeur de l'AUTO_INCREMENT [résolu] [MySQL] - SQL/NoSQL - Programmation

Marsh Posté le 09-01-2004 à 16:09:11    

J'ai une table avec un champ Id en AUTO_INCREMENT.
 
Problème: tous mes numéros doivent se suivre sans "trous". Or j'ai effacé un enregistrement de test ce qui m'a incrémenté l'AUTO_INCREMENT.
 
Comment modifier cette valeur?
 
A priori, ce doit être possible puisque lorsqu'on exporte une base grâce à phpMyAdmin, il est possible de sauvegarder la valeur de l'AUTO_INCREMENT (en ajoutant une  clause AUTO_INCREMENT après le CREATE TABLE). Il existerait aussi un moyen avec ALTER, OPTION et INSERT_ID, mais je n'ai pas pu trouver d'exemple sur le net et mes essais se sont révélés infructueux (je ne dois pas écrire la requête correctement).
 
Quelqu'un peut m'aider?
 
D'avance merci!
 
 
 
[Edit] Résolu


Message édité par Toucouch le 12-01-2004 à 10:34:16
Reply

Marsh Posté le 09-01-2004 à 16:09:11   

Reply

Marsh Posté le 09-01-2004 à 16:56:20    

A priori un  
 
ALTER TABLE nom_base AUTO_INCREMENT = xxx
 
te modifiera ton AUTO_INCREMENT en la valeur xxx

Reply

Marsh Posté le 12-01-2004 à 10:33:21    

Merci beaucoup! :jap: Je voulais absolument caser un "SET" dans la requête: erreur...
 
(En passant, je pense que tu voulais mettre "nom_table" et non "nom_base" dans ta syntaxe... ;) )

Reply

Marsh Posté le 12-01-2004 à 18:21:43    

Toucouch, ne ferais-tu pas la grave erreur d'utiliser des IDs d'auto_incrementation pour des numéros de rang lors d'un affichage ?
 
Dans ce cas précis, on utilise un banal compteur dans la boucle qu'on incrémente.

Reply

Marsh Posté le 13-01-2004 à 00:59:28    

oui c'était bien un 'nom_table'...
 
Le lecteur aura corrigé de lui même ;)

Reply

Marsh Posté le 22-01-2004 à 13:31:39    

Master_Jul a écrit :

Toucouch, ne ferais-tu pas la grave erreur d'utiliser des IDs d'auto_incrementation pour des numéros de rang lors d'un affichage ?
 
Dans ce cas précis, on utilise un banal compteur dans la boucle qu'on incrémente.


Des numéros de rang lors d'un affichage? Désolé, je ne comprends pas bien ce que tu veux dire...
 
Tu veux peut-être dire un champ dont l'unique fonction est de déterminer l'ordre dans lequel s'affiche une liste d'items par exemple (pour avoir un ordre différent de l'ordre alphabétique ou autre)?
 

Reply

Marsh Posté le 28-01-2004 à 19:38:18    

Non en fait, perso, à mes débuts en SGBD, je faisais cette grossière erreur j'avais donc mes 3 champs :
ID, Nom, Prénom
 
Et quand je faisais un affichage de ma liste d'inscrit, j'avais :
1 Bidule Truc
2 Chose Machin
3 Toto Titi
 
Et quand je virais l'inscrit avec l'identifiant 2, ben ça faisait un trou lors de l'affichage puisque je me servais de l'ID en guise de "compteur".


Message édité par Master_Jul le 28-01-2004 à 19:39:01
Reply

Marsh Posté le 29-01-2004 à 01:06:50    

Master_Jul a écrit :

Non en fait, perso, à mes débuts en SGBD, je faisais cette grossière erreur j'avais donc mes 3 champs :
ID, Nom, Prénom
 
Et quand je faisais un affichage de ma liste d'inscrit, j'avais :
1 Bidule Truc
2 Chose Machin
3 Toto Titi
 
Et quand je virais l'inscrit avec l'identifiant 2, ben ça faisait un trou lors de l'affichage puisque je me servais de l'ID en guise de "compteur".


Ah OK,... Mais non, ce n'est pas du tout mon problème...
 
En gros, je gère un système qui permet d'avoir une traçabilité des interventions de notre service. Et pour des raisons bureaucratique, dirais-je, il ne dois pas y avoir de trou dans la numérotation. Le problème, c'est que j'ai un parkinsonien qui a cliqué what-mille fois sur le bouton de soumission du formulaire. Résultat: x fois le même enregistrement. J'ai voulu supprimé les doublons en "fin de liste", mais après l'AUTOINCREMENT me laissait un trou...
 
Voilà, voilà! Tout sur ma vie trépidante au bureau...

Reply

Marsh Posté le 29-01-2004 à 17:02:50    

cool, exactement ce que je cherchais (alter table auto_increment).  
:jap: et merci à la fonction recherche du forum...

Reply

Sujets relatifs:

Leave a Replay

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