• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:後からAUTO_INCREMENTの値を1にする方法)

後からAUTO_INCREMENTの値を1にする方法

このQ&Aのポイント
  • MySQL=4.0.26、phpMyAdmin 2.6.4-pl4を使用しています。AUTO_INCREMENT(int11)が自動追加されて、数値が70になったとしても、レコードを削除しても数値が1になりません。プライマリーキーの関係かなと思いますが、後からphpMyAdmin上でAUTO_INCREMENTの値を1にする方法、また、自由に数値を変更する方法を教えて頂けないでしょうか。
  • 初期の段階でDBを構築する場合でSQLを実行する場合のAUTO_INCREMENTは解るのですが、たとえばPRIMARY KEYを(`no`)としてTYPE=MyISAM AUTO_INCREMENT=1;として、正常に利用していますが、DB構築後、レコードが登録された後、phpMyAdmin上でレコードを削除した後またAUTO_INCREMENT=1などにする方法が解りません。
  • 説明べたで申し訳御座いませんが、どうぞ宜しくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • mooboogie
  • ベストアンサー率68% (28/41)
回答No.1

alter table t1 pack_keys=0 checksum=0 delay_key_write=0 auto_increment=1; ※t1 AUTO_INCREMENTカラムを含む該当テーブルとする で出来るみたいです。 マニュアルによると、 >AUTO_INCREMENT カラムで生成される値は、MAX(auto_increment_column)+1) WHERE prefix=given-prefix として計算されます とのことなので、レコードが残っていると、既存データの最大値+1になるので、上記SQLの発行でも1にはなりません。

参考URL:
http://q.hatena.ne.jp/1112840900
sato777
質問者

お礼

正常に変更できました。 大変助かり、感謝しております。 有難う御座いました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

運用の仕方にもよりますが、データ(レコード)を安易に削除するのは やめた方がいいかもしれませんね。 「削除されましたよーフラグ」を立てておいて、検索からはずすという のが常套でしょう。(もしくは赤黒処理をいれて0にする) それしておけば、履歴性もありますのでユーザーのミスによる想定外の トラブルにも管理者が対応しやすいと思います。 したがってオートインクリメントされたフィールドに抜け番は発生しない ということで・・・。

関連するQ&A