• 締切済み

AUTO_INCREMENTの空きデータ

データベースに入っている値を見るとAUTO_INCREMENTされているIDなどが列の削除に空き(2の次が10のような)が存在しております。INT(10)に設定されているため、保管数の限界が存在します。こういうのを整頓(2の次は3)しなおすことはできるのでしょうか。 無知ですいませんが、教えていただけませんでしょうか。 組み合わせは、PHP+Mysqlです。

みんなの回答

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>INT(10)に設定されているため、保管数の限界が存在します MySQLのデータ型を誤解しているようです INT(10)は精度ではなく、桁揃えをつかうためのオプションです。 http://dev.mysql.com/doc/refman/5.1/ja/numeric-types.html 「この表示幅オプションは、カラムに指定された幅よりも小さい幅の整数値を 表示する際に左側をスペースで埋めるために使用されます。 」 具体的には、属性を「UNSIGNED ZEROFILL」にしたときINT(10)であれば 一桁の数値は左に「0」が9個埋められる・・・という仕様です。 INTはINTとしての精度をもっていますので、桁あふれはほぼ考える必要はありません。 それでもINTが不安なら無駄だとはおもいますがBIGINTを利用してください またオートインクリメント自体、ユニークなコードを発生させる手段にすぎません。 抜け番を埋める行為自体、究極の無駄なので考える必要はありません。 とくにプライマリーキーとして使用している場合は、プライマリーキーが ころころ変わるのではテーブルの管理ができません。絶対にやめるべきです。

  • ok-kaneto
  • ベストアンサー率39% (1798/4531)
回答No.1

http://d.hatena.ne.jp/IT7C/20120827/1346028253 ALTER TABLEで列を削除して追加しなおす

関連するQ&A