ショウジンブログ on Hatena

“お芝居をしないと、この社会では異邦人として扱われるほかない”

IDのauto_incrementの値を初期化する@MySQL

例えば、WordPressで作ったサイトで誤って登録したユーザーを削除すると、そのユーザーIDはそのままで、以降登録したユーザーのIDはその次(削除ユーザーの)からの連番になってしまいます。

idが1、2、3と登録されていて、たとえば3のユーザーを削除するとその後に登録したユーザーのidは3ではなく、4、5、と続いていきます。auto_incrementで登録順にユーザーidをふって連番になっていることが前提のサイトの場合、これは困ります。

この例ではユーザーIDですが、ようするにauto_incrementで自動で連番が振られているもので、データ削除によって空白が出来てしまう場合、これを解消するには、自動連番を再開させたい初期値をMySQLのクエリで実行することで解決出来ました。

該当のテーブル(この例ではblk_users)を指定して、ALTERコマンドでauto_incrementの初期値を、連番を再開させたい数字を指定して実行します。

今回はphpMyAdminを使いました。

ALTER TABLE blk_users AUTO_INCREMENT = 563

f:id:showjinx:20160420135411p:plain

上記のコマンドは、以降、blk_usersテーブルでauto_incrementの属性をもつフィールドの初期値が563からにするもので、これを実行すると、次からは563、564と続いていきます。(既存の562までのユーザーIDはそのままに)

自分はデータベースは全然詳しくないですが、これのおかげで今回のクライアントさんの誤操作によるトラブルを解消することが出来ました。

基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)

基礎からのMySQL [基礎からのシリーズ] (プログラマの種シリーズ)