アプリ版:「スタンプのみでお礼する」機能のリリースについて

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

A 回答 (2件)

http://d.hatena.ne.jp/IT7C/20120827/1346028253

ALTER TABLEで列を削除して追加しなおす
    • good
    • 0

>INT(10)に設定されているため、保管数の限界が存在します



MySQLのデータ型を誤解しているようです

INT(10)は精度ではなく、桁揃えをつかうためのオプションです。

http://dev.mysql.com/doc/refman/5.1/ja/numeric-t …

「この表示幅オプションは、カラムに指定された幅よりも小さい幅の整数値を
表示する際に左側をスペースで埋めるために使用されます。 」

具体的には、属性を「UNSIGNED ZEROFILL」にしたときINT(10)であれば
一桁の数値は左に「0」が9個埋められる・・・という仕様です。
INTはINTとしての精度をもっていますので、桁あふれはほぼ考える必要はありません。
それでもINTが不安なら無駄だとはおもいますがBIGINTを利用してください

またオートインクリメント自体、ユニークなコードを発生させる手段にすぎません。
抜け番を埋める行為自体、究極の無駄なので考える必要はありません。
とくにプライマリーキーとして使用している場合は、プライマリーキーが
ころころ変わるのではテーブルの管理ができません。絶対にやめるべきです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!