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 ?
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 :
<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!