1. ホーム
  2. sql

[解決済み] MySQLの削除後の自動インクリメント

2023-07-13 12:56:44

質問

AUTO_INCREMENT がオンになっている主キーフィールドを持つ MySQL テーブルがあります。 ここの他の投稿を読んだ後、同じ問題を持つ人々とさまざまな回答があることに気づきました。ある人はこの機能を使用しないことを推奨し、他の人はそれが「修正」できないと述べています。

私は

table: course
fields: courseID, courseName

例:テーブルのレコード数。18. もし、レコード16、17、18を削除した場合、次に入力されるレコードは16のcourseIDを持つと思われますが、最後に入力されたcourseIDが18であるため、19になります。

私の SQL 知識は驚くほどではありませんが、クエリ (または phpMyAdmin インターフェイスの設定) でこのカウントをリフレッシュまたは更新する方法はありますか?

このテーブルは、データベース内の他のテーブルと関連します。


すべてのアドバイスを考慮し、私はこの「問題」を無視することにしました。私は、自動インクリメントに仕事をさせながら、単にレコードを削除および追加します。番号が何であるかは、一意の識別子としてのみ使用され、(上記のような) ビジネス の意味を持たないからです。

私の最初の投稿で混乱させたかもしれない人々のために。私は、このフィールドを使用してレコードの数を知りたいわけではありません。私はただ、データベースをきちんと見せて、もう少し一貫性を持たせたかっただけなのです。

どのように解決するのですか?

の意図した使い方ではないので、あなたがやろうとしていることは危険なように思えます。 AUTO_INCREMENT .

もし本当に一番低い未使用のキー値を見つけたいのであれば、このように AUTO_INCREMENT を全く使わず、キーを手動で管理すればよいのです。しかし、これは推奨されるやり方ではありません。

一歩下がって、quot に尋ねます。 なぜキー値を再利用する必要があるのでしょうか? " 無署名で行う INT (または BIGINT ) は十分な大きさの鍵空間を提供しないのでしょうか?

あなたは本当に 18,446,744,073,709,551,615 を超えるレコードを持つことになるのでしょうか?