データベースの再番号化

余計なデータを作成してしまった番号を不要扱いにして最新から始める方法です。要はナンバリングの微調整。ごく稀に検証するケースがあります。コマンドライン(SQL)の操作はデータベースを直接触ることになるため細心の注意が必要(誤操作NG)。

ALTER TABLE tbl_a AUTO_INCREMENT = 16;

16以降をdb内から消した上であらためて16から番号をスタートしたい場合ですね。最新の番号がわからない(確認が手間)という状況であればこのような書き方もできます。

SELECT MAX(id) AS max_id_a FROM tbl_a;

上記は最新idから現最大値を取得する方法です。

max_id_a:31

仮に値が31なら下記の通り「+1」して32で実行。

ALTER TABLE tbl_a AUTO_INCREMENT = 32;

もちろん、現状の最大値に「+1」して取得もOK。

SELECT IFNULL(MAX(id) + 1, 1) AS next_id FROM tbl_a;

無駄な空き番を防ぐための対策です。今後の将来的なナンバリングを見越して枠を整理しておけばデータ運営がスムーズかもしれません。

ローカル環境で事前検証は必須なのでお忘れなく。

MySQL / MariaDB対応。その他RDB(例:PostgreSQL)は要コード変換。

記事にコメントを残す