人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: dak
●カテゴリ:コンピュータ
✍キーワード:MySQL テスト データ フィールド リセット
○ 状態 :終了
└ 回答数 : 4/4件

▽最新の回答へ

1 ● typista
●5ポイント

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

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

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

◎質問者からの返答

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


2 ● allows
●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

◎質問者からの返答

コメントには知りたい事が書いてあるように思えるのですが、$ 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


3 ● battan
●0ポイント

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を設置した方に問い合わせることになると思います。

◎質問者からの返答

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


4 ● graypenguin
●95ポイント

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文を表示してくれます。もちろん、テーブル内には何もレコードがない状態でやらないとエラーにはならなくても、反映されませんので、気をつけて。

◎質問者からの返答

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ