www.ni4.jp

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の値を確認します。

(注)もっと簡単な方法を教えてもらって文末に追記しています。

20140601161216.png

そうすると、こんな感じで次のIDが何番になるか確認できます。

20140601161346.png

そこで、先ほどと同じようにphpMyAdminで ALTER TABLE テーブル名 AUTO_INCREMENT = 変更したい数値; として、この数値を変更して完了!

...のはずが、この方法では変更できませんでした。

これで作業完了!のはずが...なぜか変更できませんでした。
以前はこれで変更できていたはず...と思っていたのですが、それがそもそも勘違いだったようです。

AUTO_INCREMENTは最大値以下には設定できないらしい

よくよく思い返してみると、今までリセットすることはあっても、任意の数値に戻すような作業はしていなかった気がします。
というわけで、この方法での変更は難しい(というか無理?)ということがわかりました。

とは言え、ここまでやって放置というのも。
そこで、MySQLをダンプ(バックアップ)して、それを変更してインポートしてみることに。

  1. phpMyAdminからDB内のデータをエクスポート
  2. 一旦、DB内のデータを「空」にする(今回、テーブルは残しました)
  3. ダンプファイルをテキストエディタ等で開く
  4. テーブルの構造 `mt_entry` の中にある AUTO_INCREMENT部分を変更(AUTO_INCREMENT=数値)
  5. phpMyAdminから編集後のダンプファイルをインポート

そして、あらためて SHOW TABLE STATUS LIKE 'mt_entry'; で確認してみると、無事に変更後の数値に変わっておりました。(MT側でも確認済み)

この方法が正しい(あるいは良い方法)なのかはわかりませんので、ご参考いただく際は「自己責任」でお願いします(汗)

とりあえず、ワタシがやりたかったことはできました!ということで。

18:12 追記

Facebook上で、友人の濱内さんから「該当テーブルの操作タブから変更できますよ」って教えてもらって見てみると、なんともっと簡単にできました!(下の画像参照)

20140601180730.png

てっきりSQL?でやらないとだめだと思っていたのですが、こんな簡単な方法があるんですねー。

「MTのブログIDをリセットする」とか検索して出てくるのは、ALTER TABLEばかりだったので、それでしか出来ないものと思ってました!

濱内さん、教えてくれてありがとうございました!

にしやま やすふみ

札幌のウェブサイト・ホームページ制作会社 ジャクスタポジションで、代表とディレクターやってます。Movable Typeとラーメン、ザンギ、酒が好き。
プロフィール詳細はこちら

アクセスの多い記事