Maison >base de données >tutoriel mysql >Comment puis-je trouver des lacunes dans une séquence d'incrémentation automatique MySQL ?

Comment puis-je trouver des lacunes dans une séquence d'incrémentation automatique MySQL ?

Susan Sarandon
Susan Sarandonoriginal
2025-01-12 06:10:45269parcourir

How Can I Find Gaps in a MySQL Auto-Increment Sequence?

Détection des nombres manquants dans les colonnes à incrémentation automatique MySQL

De nombreuses tables MySQL utilisent des colonnes à incrémentation automatique pour garantir une identification unique. Cependant, la suppression de données ou d'autres opérations peuvent laisser des lacunes dans la numérotation séquentielle. Cette requête identifie efficacement ces écarts dans une plage définie :

<code class="language-sql">SELECT (t1.id + 1) AS gap_starts_at,
       (SELECT MIN(t3.id) - 1 FROM arrc_vouchers t3 WHERE t3.id > t1.id) AS gap_ends_at
FROM arrc_vouchers t1
WHERE NOT EXISTS (SELECT t2.id FROM arrc_vouchers t2 WHERE t2.id = t1.id + 1)
HAVING gap_ends_at IS NOT NULL;</code>

Le résultat de la requête se compose de :

  • gap_starts_at : Indique le point de départ d'une séquence de nombres manquante.
  • gap_ends_at : Affiche le point final de la séquence manquante.

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