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
Libérer: 2025-01-11 09:38:40
original
192 Les gens l'ont consulté

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 :

SELECT ID + 1
FROM table_name
WHERE ID + 1 NOT IN (SELECT DISTINCT ID FROM table_name);
Copier après la connexion

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 :

SELECT DISTINCT id +1
FROM table_name
WHERE id + 1 NOT IN (SELECT DISTINCT id FROM table_name);
Copier après la connexion

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 :
SELECT ID + 1
FROM table_name
WHERE ID + 1 NOT IN (
  SELECT DISTINCT ID FROM table_name
)
AND ID + 1 < MaxID;
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal