1

重複の可能性:
auto_increment 値を再利用するには?

主キーとして自動インクリメント 列を持つテーブルがありますが、a が削除されるたびにギャップが生じるという「問題」に遭遇しています。もちろんこれ自体は問題ありませんが、あまりきれいに見えません。の「次の」番号の代わりに、MySQL に最初の使用可能な未使用の番号を使用させる簡単な方法はありますか? 私の質問が理にかなっていることを願っています。IDkeyIDsequence

4

2 に答える 2

4

あなたが達成したいことは、私見ですが、あまり良い考えではありません。これを考慮に入れてください。Table削除した に関連付けられている可能性がある他の がありprimary keyます。

削除 済みに関連付けられた他のテーブルに既存の値があると仮定すると、ギャップから取得されprimary keyた新しいエントリを挿入すると、他のテーブルに関連付けられたが得られます。あなたはそれを望まないでしょう。もちろん、主キーを削除するときにすべてのテーブルを消去する場合を除いて、それは大変な作業です。ほとんどの人には十分ではないかもしれません。primary keyDelete Cascade

于 2012-10-19T05:06:10.373 に答える
1

自動インクリメントではありません。本当に必要な場合は、INSERTを変更してIDを具体的に挿入し、のようなものに設定でき1+(select max(id) from your_table_name)ます。ただし、使用時にテーブルに行がない場合は、正しく動作するように少し変更することをお勧めします。これを行う場合は、selectの後に挿入が続くのではなく、すべてが1つの挿入クエリの一部であることを確認してください。

しかし、なぜあなたは「きちんとした」ことを心配しているのですか?連番で表示したい場合は、他の方法でIDを表示しないでください。

于 2012-10-19T05:20:23.037 に答える