Recherche des identifiants auto-incrémentés manquants dans SQL
Ce guide montre comment localiser les identifiants auto-incrémentés manquants dans une table SQL. Par exemple, si votre table comporte des lacunes (ID manquants tels que 1, 4, 5, 8 et 12-18), cette requête vous aidera à les trouver.
Voici la requête SQL :
<code class="language-sql">SELECT id + 1 FROM mytable WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable);</code>
Comment ça marche :
La requête fonctionne par :
id
existant dans le tableau, créant une séquence représentant les identifiants potentiels.id
réels dans le tableau à l'aide d'une sous-requête.WHERE
filtre les résultats, ne laissant que les identifiants incrémentés non trouvés dans le tableau : ce sont les identifiants manquants.Remarques importantes :
id
est 1. Si votre table commence par un ID différent, ajustez la requête en conséquence. Par exemple, s'il commence à 10 heures, remplacez id 1
par id 10
dans la clause WHERE
.id
existant. Si vous avez supprimé des entrées dont les identifiants sont supérieurs au maximum, ces écarts ne seront pas détectés.WHERE
pour inclure une limite supérieure. Par exemple, pour vérifier jusqu'à l'ID 100 :<code class="language-sql">WHERE id + 1 NOT IN (SELECT DISTINCT id FROM mytable) AND id + 1 < 100;</code>
Considérations spécifiques à la base de données :
DISTINCT
par GROUP BY
dans la sous-requête.Cette méthode fournit un moyen concis et efficace d'identifier les ID auto-incrémentés manquants dans votre table SQL, facilitant ainsi les contrôles d'intégrité des données et le dépannage.
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!