【MySQL】auto_incrementを詰め直す方法

データベースを触っているとデータの追加削除を繰り返します

削除すると必ず削除したidが抜けてしまいます
それでは見た目が悪かったり、扱いづらいなどあると思います

覚えておくと役に立つことがあるかもしれません

ここではSQL文だけ書くことにします
ターミナル、またはphpMyAdminから実行してください

SETしてUPDATE

SET @n := 0;
UPDATE テーブル名 SET フィールド名 = @n := @n + 1;

一行目で変数に0をセットします。

二行目でフィールドの値を更新します
WHERE句で更新するレコードを指定していないため全てのレコードを更新していきます
特にループしているわけではありませんが、順に更新していくため1ずつ増やすという動きが成り立っています

auto_incrementをリセット

ここまででは並び替えをしただけで、次に登録するidは並び替え前の続きになってしまいます

そこで次に登録するidをセットし直します

ALTER TABLE テーブル名 auto_increment = 次のid;

最新のidが「6」の時、「次のid」は「7」になります
今登録されているidの次のidを指定してください

今回はここまで

タイトルとURLをコピーしました