Maison >base de données >tutoriel mysql >Comment puis-je trouver les ID à incrémentation automatique manquants dans ma table de base de données SQL ?

Comment puis-je trouver les ID à incrémentation automatique manquants dans ma table de base de données SQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-11 09:38:40162parcourir

How Can I Find Missing Auto-Incrementing IDs in My SQL Database Table?

Utilisez SQL pour rechercher les identifiants manquants dans une table

Dans les tables de base de données avec des clés primaires à incrémentation automatique, les entrées supprimées peuvent créer des « trous » dans les valeurs des champs. Pour identifier ces identifiants manquants, vous pouvez rédiger une requête.

Requêtes MySQL et SQL Server :

<code class="language-sql">SELECT ID + 1
FROM table_name
WHERE ID + 1 NOT IN (SELECT DISTINCT ID FROM table_name);</code>

Cette requête fournira une liste de tous les identifiants manquants consécutifs entre la première et la dernière entrée du tableau.

Requête SQLite :

<code class="language-sql">SELECT DISTINCT id +1
FROM table_name
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM table_name);</code>

SQLite ne prend pas en charge le mot-clé LIMIT, utilisez donc des sous-requêtes distinctes pour éviter les résultats en double.

Autres notes :

  • Cette requête suppose que le premier identifiant est 1.
  • Cette requête n'inclut aucun identifiant supprimé supérieur à l'identifiant maximum actuel.
  • Pour inclure les identifiants supprimés entre le maximum actuel et le paramètre MaxID spécifié, modifiez la requête comme suit :
<code class="language-sql">SELECT ID + 1
FROM table_name
WHERE ID + 1 NOT IN (
  SELECT DISTINCT ID FROM table_name
)
AND ID + 1 < MaxID;</code>

Veuillez noter que cette modification peut ne pas être prise en charge par toutes les versions de SQLite.

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