- ベストアンサー
データの連番
重複しないように連番になるように AUTO_INCREMENTとPRIMARYが設定されているidフィールドがあるんですが、 データを削除したあと連番になりません。 例えばデータを10個作ると自動的にidフィールドに1~10まで番号がふられます。 id10のデータを削除し、新規で追加すると データのidは11になってしまいます。自動的に10に振り分けてほしいのですが可能なのでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
「空いている番号のうち、最小の値を再利用したい」と言っているのでしょうか? もしそうであれば、auto_incrementだけでは行えず、利用者側がそういったクエリを投げる必要があります。 MySQLのauto_incrementは、ユニークな値を生成することは可能ですが、空きの番号を再利用したりといったことは行えません。そうしたオーバーヘッドを省略することで、素早くユニークな値を生成できるのです。 なお、auto_incrementの仕様には、InnoDB、MyISAMなどのストレージエンジンの種別で、若干、異なるところがあります。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
回答No.2
新たに追加したデータが以前に登録したデータよりidが大きい ということに意味があります。 「連番」であるということはあまり意味がありません。 10を削除したら11になるべきです。 (削除しないで隠すほうがベターです) どうしても連番データがほしいのであれば、正規化して 別テーブルで管理してください。
質問者
お礼
ありがとうございます。
お礼
ありがとうございます