Maison  >  Article  >  base de données  >  Comment puis-je renuméroter un index primaire MySQL avec des valeurs non séquentielles par ordre croissant ?

Comment puis-je renuméroter un index primaire MySQL avec des valeurs non séquentielles par ordre croissant ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-25 11:26:30708parcourir

How can I renumber a MySQL primary index with non-sequential values in ascending order?

Renumérotation de l'index primaire pour les données ordonnées

Question :

Vous disposez d'une table MySQL avec un index primaire dont les valeurs ne sont pas numérotées de manière séquentielle. Comment pouvez-vous les renuméroter dans l'ordre (1, 2, 3, ...) ?

Réponse :

Bien que d'autres méthodes soient disponibles, voici une approche alternative cela ne nécessite pas de créer des tables temporaires.

Solution :

Exécutez les instructions SQL suivantes :

<code class="sql">SET @i=0;
UPDATE table_name SET column_name=(@i:=@i+1);</code>

Explication :

  • La première ligne initialise une variable de session @i à 0.
  • La deuxième ligne effectue une requête UPDATE sur la table nommée nom_table.
  • Dans le UPDATE requête, la clause SET attribue une nouvelle valeur à la colonne d'index principale nom_colonne.
  • La nouvelle valeur est calculée en incrémentant la variable de session @i de 1.
  • Lorsque la requête s'exécute, le @ La variable i continue de s'incrémenter, garantissant que les valeurs de l'index principal sont renumérotées séquentiellement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn