MySQL オートインクリメントの値をリセット
2015.04.12
この記事は最終更新日から1年以上が経過しています。
忘れないようにと。
MySQLのオートインクリメントの値をリセットするコマンドは。
ALTER TABLE 'テーブル名' AUTO_INCREMENT = 次の番号にしたい数値;
idなど自動的に増えるようにオートインクリメントを設定することが多々で、idのカラムが以下のようになっていて
id=1,2,3,4,5,6,7
id「5,6,7」を削除したとします。
id=1,2,3,4
それで、新たに行を追加した際、idは「5」になって欲しいところですが
id=1,2,3,4,8
こんな感じで削除したカラムのオートインクリメントの値は保持されたまま、idは次の値となってしまします。
そこで、削除した後、冒頭のコマンドで値の変更を。
id=1,2,3,4,5,6,7
↓ 削除
id=1,2,3,4
↓ 変更
ALTER TABLE `テーブル名` AUTO_INCREMENT = 次の番号にしたい数値;
↓ 追加
id=1,2,3,4,5
といった具合に。
うまくいかない場合
上記の方法で行ってもうまくいかなかったりします。
その際は、削除した後、AUTO_INCREMENTの設定を一度外すとうまくいきます。
id=1,2,3,4,5,6,7
↓ 削除
id=1,2,3,4
↓ AUTO_INCREMENTの設定を解除
ALTER TABLE `テーブル名` CHANGE `id` `id` INT NOT NULL;
↓ 変更
ALTER TABLE `テーブル名` AUTO_INCREMENT = 次の番号にしたい数値;
↓ 再度 AUTO_INCREMENTの設定
ALTER TABLE `テーブル名` CHANGE `id` `id` INT NOT NULL AUTO_INCREMENT;
↓ 変更
ALTER TABLE `テーブル名` AUTO_INCREMENT = 次の番号にしたい数値;
↓ 追加
id=1,2,3,4,5
とこの方法で解決しました。
忘れないようにとメモな感じでした。