8797 sujets

Développement web côté serveur, CMS

Bonjour à tous,

J'aimerais poser une question sur mysql, pour savoir si il y aurait une fonction ou un pti truc dans la configuration pour sa.

Voilà, comment faire pour que l'id d'une table reprenne a l'id du dernier enregistrement apres une suppression?

Cordialement

Merci de votre aide
Salut,

Il faut renseigner la valeur de l'auto incrément.

# Remplacer X par la valeur de l'auto incrément souhaité
ALTER TABLE `ta_table` AUTO_INCREMENT = X
Merci de ta réponse Agylus mais cela ne fonctionne pas. J'ai toujours des trou lorsque je supprime et que j'insert.
C'est que tu le fais mal. Et sans code de ta part, on ne pourra pas deviner ce qui cloche, à part peut-être si l'un d'entre nous bosse en étroite collaboration avec Mme Irma.
Agylus a écrit :
C'est que tu le fais mal. Et sans code de ta part, on ne pourra pas deviner ce qui cloche, à part peut-être si l'un d'entre nous bosse en étroite collaboration avec Mme Irma.


Oui je suis d'accord avec toi, mais je l'ai fait directement dans phpmyadmin, donc je voit pas pourquoi mettre du code (ok j'avais oublier de le préciser, autant pour moi...).

J'ai essayer avec :
ALTER TABLE `ma_table` AUTO_INCREMENT = 0
et
ALTER TABLE `ma_table` AUTO_INCREMENT = 1

Mais chaque fois que je supprime et que je ré-insert, il y a des trou au niveau des id.
L'auto incrément ne comble pas les trous que tu peux avoir dans les valeurs de ta table. Il prendra obligatoirement la valeur du dernier enregistrement + 1 si tu mets un chiffre moins élevé et la valeur que tu renseignes si elle est plus élevée que la valeur du dernier enregistrement.

Mais évidemment, ça c'est la pratique générale, dans ton cas tant que l'on ne connait pas un minimum les données que tu as dans ta table en question on ne pourra pas te donner une réponse adaptée.
Ok, voici une caputre de phpmyadmin avec explications.

upload/21532-cap.png

J'ai une table parutions avec comme clé primaire un id de parutions associé a un id d'article et un id de rubrique.
Modifié par morroko (08 Jun 2009 - 14:46)
Salut,

ben c'est le fonctionnement normal... et c'est à priori une bonne chose puisqu'un identifiant de table a de grandes chances d'être également une clef dans une autre table. En reprenant un id déjà utilisé tu risquerais d'avoir des liens erronés ce qui n'est pas possible en utilisant un nouvel incrément.

Pourquoi veux-tu faire ça ?
Modifié par Heyoan (08 Jun 2009 - 14:55)
Donc c'est bien ce que je dis :
Agylus a écrit :
L'auto incrément ne comble pas les trous que tu peux avoir dans les valeurs de ta table. Il prendra obligatoirement la valeur du dernier enregistrement + 1 si tu mets un chiffre moins élevé

Tu essaies de mettre 1 alors que tu as déjà un ID de 38.
Heyoan a écrit :
Salut,

ben c'est le fonctionnement normal... et c'est à priori une bonne chose puisqu'un identifiant de table a de grandes chances d'être également une clef dans une autre table. En reprenant un id déjà utilisé tu risquerais d'avoir des liens erronés ce qui n'est pas possible en utilisant un nouvel incrément.

Pourquoi veux-tu faire ça ?


Bonjour,
Ben à la base c'était juste une question, car quand je supprimer des enregistrements de ma table, si j'en inserer d'autre, il ne continuer pas l'id du dernier enregistrement restant mais du dernier id avant la suppression.

Je voulais savoir si dans mysql il n'y avait pas une option ou quelquechose à modifier pour le faire automatiquement.

C'est tout.

Mais pour Agylus, je te remercie de m'avoir donner la syntaxe qui permet de le faire, mais j'ai mis '1' car de toute façon tout mes id etait superieur et je me suis dit qu'en toute logique il devrait continuer à l'id du dernier enregistrement.