2011-12-24 18 views
0

ちょっと、私は自分の自動インクリメントIDを修正できたと思っていました...テーブルに行を追加するたびに、IDは1です。ここに例があります。MySQLテーブルの自動インクリメントIDの固定

私のテーブルには、現在次のようになります、今

MySQL Table

あなたが見ることができるように、最後の要素は、私はこの1つは199 になりたい200に198からジャンプだから私は手動で変更すると言いますその最後の値(200)を199に設定すると、明らかに機能しますが、次にスクリプトがテーブルに行を追加すると、再びオフになります(201)。どのように私はそれを修正することができる任意のアイデア?助けてくれてありがとう、sh042067。

+1

結合のために行を「再索引付け」することは必ずしも良いことではありません。値を再索引付けすると、結合が正しく表示されません。 – MacMac

答えて

3

「欠落している」IDの根本原因を突き止めるべきです。

あなたが本当にちょうどにしたい場合は、自動インクリメントカウンタを再設定する。しかし、あなたはこれを行うことができます。

ALTER TABLE my_table AUTO_INCREMENT=200; 
次の自動インクリメントid値が200(それはMySQLをだと仮定)にする必要があります

+0

驚くべきことに、私は同じことを思っていた....私はほとんどすべての私のテーブルを作って、mannualyすべての記事を追加していた – Darkeden

0

これは、テーブルから行を削除した後で、新しい行を追加したために発生した可能性があります。あなたのID列にこのテーブルのための同期が必要な理由はありますか?新しい行の削除、置換、および/または追加を計画していますか。もしそうなら、この列は同期したままではありません。この問題を解決するために(列を削除して再作成するのと同じくらい簡単かもしれない)どんな手順を取っても、削除したり追加するのと同じくらい頻繁に行う必要があります。データ。

要するに、達成しようとしていることに関する詳細情報が必要です。

+0

これで行が削除されることはありません。乞食の中で、はい、私は行を落としていた、そして、それはなぜ今それが台無しにされているの理由だったに違いない。しかし、ええ、もう一度、私はもう行を削除されません。申し訳ありませんが情報の不足のために。 – hetelek

関連する問題