ホームページ >データベース >mysql チュートリアル >MySQL の自動インクリメント シーケンスのギャップを見つけるにはどうすればよいですか?

MySQL の自動インクリメント シーケンスのギャップを見つけるにはどうすればよいですか?

Susan Sarandon
Susan Sarandonオリジナル
2025-01-12 06:10:45269ブラウズ

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

MySQL の自動インクリメント列で欠落している数値を検出する

多くの MySQL テーブルは、一意の識別を保証するために自動インクリメント列を利用しています。ただし、データの削除やその他の操作により、連続番号にギャップが残る場合があります。このクエリは、定義された範囲内のこれらのギャップを効果的に特定します:

<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>

クエリの出力は次のもので構成されます:

  • gap_starts_at: 欠落している数値シーケンスの開始点を示します。
  • gap_ends_at: 欠落しているシーケンスのエンドポイントを表示します。

以上がMySQL の自動インクリメント シーケンスのギャップを見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。