phpMyAdminでMTの記事IDを任意の数値に変更してみた
こんにちは。
先日(5/24)、Movable Type 6 ハンズオンセミナーをMT蝦夷主催で開催しました。
そのレポートを書こうかとこのブログを開いて、ふと気がついたことが。
そのハンズオンの中で、Data APIを利用するために400件以上の記事データをインポートしていたので、記事IDが激増してしまっていたんです。
記事IDが増えてしまうことは良いのですが、使用していないIDが大量にあるのは気持ちよくない。
そこで、昔はよくやっていた「MySQLで任意のテーブルのAuto_incrementをリセットする方法」で、任意の数字に変えてみようと思いました。
そこで、まずはphpMyAdminからデータベースへアクセスし、 SHOW TABLE STATUS LIKE 'mt_entry'; でAuto_incrementの値を確認します。
(注)もっと簡単な方法を教えてもらって文末に追記しています。
そうすると、こんな感じで次のIDが何番になるか確認できます。
そこで、先ほどと同じようにphpMyAdminで ALTER TABLE テーブル名 AUTO_INCREMENT = 変更したい数値; として、この数値を変更して完了!
...のはずが、この方法では変更できませんでした。
これで作業完了!のはずが...なぜか変更できませんでした。
以前はこれで変更できていたはず...と思っていたのですが、それがそもそも勘違いだったようです。
AUTO_INCREMENTは最大値以下には設定できないらしい
よくよく思い返してみると、今までリセットすることはあっても、任意の数値に戻すような作業はしていなかった気がします。
というわけで、この方法での変更は難しい(というか無理?)ということがわかりました。
とは言え、ここまでやって放置というのも。
そこで、MySQLをダンプ(バックアップ)して、それを変更してインポートしてみることに。
- phpMyAdminからDB内のデータをエクスポート
- 一旦、DB内のデータを「空」にする(今回、テーブルは残しました)
- ダンプファイルをテキストエディタ等で開く
- テーブルの構造 `mt_entry` の中にある AUTO_INCREMENT部分を変更(AUTO_INCREMENT=数値)
- phpMyAdminから編集後のダンプファイルをインポート
そして、あらためて SHOW TABLE STATUS LIKE 'mt_entry'; で確認してみると、無事に変更後の数値に変わっておりました。(MT側でも確認済み)
この方法が正しい(あるいは良い方法)なのかはわかりませんので、ご参考いただく際は「自己責任」でお願いします(汗)
とりあえず、ワタシがやりたかったことはできました!ということで。
18:12 追記
Facebook上で、友人の濱内さんから「該当テーブルの操作タブから変更できますよ」って教えてもらって見てみると、なんともっと簡単にできました!(下の画像参照)
てっきりSQL?でやらないとだめだと思っていたのですが、こんな簡単な方法があるんですねー。
「MTのブログIDをリセットする」とか検索して出てくるのは、ALTER TABLEばかりだったので、それでしか出来ないものと思ってました!
濱内さん、教えてくれてありがとうございました!