• 締切済み

連番の質問

こんにちは MYSQLの勉強始めたばかりなのですけど、よろしくお願いします。 このように連番を作ったのですが、 alter table xxx add renban int; alter table xxx add index index1(renban); alter table xxx modify renban int auto_increment; 順調にできたのですが、#9と#10の二つのフィールドを消去したところで、次の番号が9からではなく、 11からになってしまったのです。 そこで、index1の消去して、新しい連番を作るのに、どうすればいいのか、教えてください。 それとも、次の番号が11ではなく、9になるように、どうすればいいのか、お願いできますか? お願いします。

みんなの回答

  • nora1962
  • ベストアンサー率60% (431/717)
回答No.3

回答が重複するかもしれませんが、少なくともinnodbなら alter table <tablename> auto_increment=<value>; で可能です。

  • bobviv
  • ベストアンサー率50% (13/26)
回答No.2

 お使いのテーブルがMyISAMタイプだという前提で書きます。(I assume that your table is 'MyISAM' type.)  auto_increment値をリセットしたいということでしたら、テーブルのタイプをInnoDBに変更してMySQLを再起動してみてください。その後またテーブルタイプを'MyISAM'に戻します。(If you want to reset the current value of auto_increment, change table type to 'InnoDB' and reboot MySQL.Then change back to 'MyISAM'.)    alter table xxx type=innodb  [reboot mysql]  alter table xxx tayp=myisam    ほかには、コマンドから(Another way is to type command like this...)  myisamchk -A xxx or  myisamchk --set-auto-increment[=value] xxx  という手もあります。私が以前試した環境ではこれはうまくいきませんでしたが。(Although this way didn't work well in my case.)  インデックスの指定もされているようですが、auto_incrementの問題とは関係ないでしょう。(Your query specifies the index for a table. But I think indexing does not have nothing to do with resetting the current value of auto_increment.) メーリングリスト等も参照してください。(Also refer to mailing lists etc.)

参考URL:
http://dev.mysql.com/doc/refman/5.0/en/innodb-auto-increment-column.html
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

常に連番というのは不可能ではないでしょうけど やる意味がないので、いかがなものかと思います。 特にインクリメントってユニークなIDを発行している だけで別に連番機能というわけでもないでしょう。 RDBですからそのIDをキーに他のテーブルとの すり合せにつかったりするわけで、9番を消して、 あらたなわけのわからんデータが9番にきて しまったら、整合性がなくなりますから。 また連番といってもソートは任意のフィールド をつかうので、連番の意味がありません。 連番をつかってソートするくらいなら 更新日時をフィールドにうめむか更新順テーブル をもってください。

nonofu
質問者

お礼

ごめんなさい。意味がよくわかりません。 一点だけ直さないといけないのは、#9と#10のことは、フィールドのことではなく、レコードのことです。 連番は参考のためにつくったフィールドです。 あらためて質問するのならば、連番index1を作った後に、どうやってそのindex1を消去すればいいのか (もう一度新しい連番作るために)、教えてください。 日本人ではないので、回答の意味が全部理解できませんでした。ごめんなさい。ありがとうございました。お願いします。

関連するQ&A