MySQLで、auto_incrementの値をリセットする方法を教えて下さい。*運用テスト時に登録していたデータを削除した所、auto_increment指定しているフィールドが中途半端な値で始まってしまうようになってしまっています。

回答の条件
  • URL必須
  • 1人2回まで
  • 登録:
  • 終了:--
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答4件)

id:typista No.1

回答回数359ベストアンサー獲得回数7

ポイント5pt

http://www.hatena.ne.jp/1108999974

人力検索はてな - mysqlでAuto_incrementの値をPrimaryKeyの最大値に振りなおす方法。 手でPrimaryKeyを入力した行を入れてから消してしまっっため、PrimaryKeyに空きができてしまいました。..

過去に類似の質問がありました。

id:dak

それでは分からなかったので質問したのですが、もう一度良く読んでみました。要するに記載されている1から3の操作をするという事だと思いますが(MyISAMやInnoDBの事は知らなかったのですが、デフォルトではMyISAMなのだとして)、レンタルサーバでサーバの再起動というのはできるものなのでしょうか?宜しければどなたか教えて下さい。もし何か勘違いしていたらそれもどなたかご回答願います。

2005/04/07 16:34:53
id:allows No.2

回答回数86ベストアンサー獲得回数0

http://www.softagency.co.jp/mysql/Manual/4.1.1/html-split/manual...

MySQL バージョン 4.1.1-alpha リファレンスマニュアル: Clients

auto_incrementを1から振りなおす †

ただ単にテーブル内のデータをdelete文を使って消しても、auto_incrementを使っているところは数字が1からは始まらない。

以下のコマンドを発行して、番号をリセットする。


$ myisamchk -A /var/lib/mysql/database/table.MYI

id:dak

コメントには知りたい事が書いてあるように思えるのですが、$ myisamchk -A /var/lib/mysql/database/table.MYIはtelnetで実行するものでしょうか?実行するとエラーが出てしまいます。ご提示頂いているリンク先でも、「ココ」という該当箇所は見つける事ができませんでした。

ERROR 1064: You have an error in your SQL syntax. Check the manual that corresp

onds to your MySQL server version for the right syntax to use near ’myisamchk -A

/var/lib/mysql/database/table.MYI’ at line 1

2005/04/07 16:53:15
id:battan No.3

回答回数63ベストアンサー獲得回数1

http://www.atmarkit.co.jp/flinux/rensai/mysql11/mysql11a.html

MySQLの高度な管理とチューニングテクニック(1/2)

URLはmyisamchkの説明頁なのであまり関係ありません。

外してる可能性が高いのでポイントも不要です。

/var/lib/mysql/database/table.MYI の 「table」のところは実際に作られているauto_incrementをリセットしたいテーブルの名前です。

それでもだめな場合、MySQLのインストール先(/var/lib/mysql/database/の部分)が違うのかもしれません。その場合はMySQLを設置した方に問い合わせることになると思います。

id:dak

やはり同じエラーが出るようです。そのコマンドはtelnet経由でmysqlにログインしてから実行するのでしょうか?

2005/04/08 02:39:07
id:graypenguin No.4

回答回数17ベストアンサー獲得回数0

ポイント95pt

http://www.phpmyadmin.net/home_page/

phpMyAdmin | MySQL Database Administration Tool | www.phpmyadmin.net

もしそのサーバー上でPHPが動いているのでしたら、phpmyadminをインストールすると操作しやすいですよ。

ちなみに、auto_incrementを1に戻す場合は、

ALTER TABLE `テーブル名` PACK_KEYS =0 CHECKSUM =0 DELAY_KEY_WRITE =0 AUTO_INCREMENT =1 を発行しているみたいです。phpmyadminにて確認。操作タグ内で、実行するとSQL文を表示してくれます。もちろん、テーブル内には何もレコードがない状態でやらないとエラーにはならなくても、反映されませんので、気をつけて。

id:dak

どうも有難うございました!バッチリです!

2005/04/08 02:48:54

コメントはまだありません

この質問への反応(ブックマークコメント)

トラックバック

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません