[MySQL] AUTO_INCREMENTの番号を振り直す方法

MySQLのAUTO_INCREMENTの値をリセットして1から連番を振りなおす方法についてです。データを追加、削除していくうちに1,2,3…と連続しているデータが,1,4,7,9…のように歯抜けになった状態を直したいときに使います。
auto_incrementになっているカラムのデータ(数字)を他のテーブルで連動させている場合には、値を変えてしまうとプログラムが動かなくなるので注意が必要です。
MySQLのコンソールからコマンドを実行します。
まず最初にテーブルのidカラム(auto_incrementが設定されているカラム)を削除します。
1 |
ALTER table テーブル名 drop column id; |
次にAUTO_INCREMENTが設定されたidを作成します。
AUTO_INCREMENTは主キーであり、かつNullでないことが必要なのでそれらを明記します。
1 |
ALTER table テーブル名 add id int(11) primary key not null auto_increment first; |
idカラムにAUTO_INCREMENTを1から設定するには、以下のようにします。
1 |
ALTER TABLE テーブル名 AUTO_INCREMENT =1 |
一度idカラムを消去するのは、テーブルのデータを全部消しても、AUTO_INCREMENTの値は消去されずに残っているからです。関連記事
- [MySQL] 当日と前日の売上データの差を求める方法(自己結合)
- [CakePHP] 独自SQLのAS句で新しいフィールドを作りCakePHPの形式でデータを出力する方法
- [MySQL]1カラムに登録されたカンマ区切りデータを検索・抽出する方法(FIND_IN_SET)
- [MySQL]月・年単位でデータを抽出する方法 (DATE_FORMAT)
- [CakePHP] Formでテーブル形式のデータを一括保存する方法