0

重複の可能性:
自動インクレメネットフィールドの「穴」を埋める方法は?

データベース内のユーザーを削除するときに問題が発生します。列内にスキップされた番号がある場合でも、ID列は常にスキップされ、増加し続けます。

例:

+---------+----------+---------+
|   ID    |  first   |   last  |
+---------+----------+---------+
|    1    |    a     |    a    |
+---------+----------+---------+
|    3    |    c     |    c    |
+---------+----------+---------+
|    4    |    d     |    d    |
+---------+----------+---------+
|    5    |    e     |    e    |
+---------+----------+---------+
|    7    |    g     |    g    |
+---------+----------+---------+
|    9    |    i     |    i    |
+---------+----------+---------+

新しいユーザーを作成するときに、ID列のギャップを自動的に埋める方法はありますか?または、リストの残りのユーザーを調整してギャップを埋めますか?

4

1 に答える 1

0

これが、自動インクリメント列の仕組みです。ギャップによってパフォーマンスなどの問題が発生することはありません。ギャップが問題を引き起こす可能性がある唯一の方法は、行を頻繁に削除し、列の最大値(おそらく40億)に近づく場合です。IDを変更してギャップを埋める場合は、IDへのすべての参照が更新されていることを確認する必要がありますが、これは通常、問題を起こす価値はありません。要約すると、ギャップは無視できます。

于 2012-10-30T03:00:04.110 に答える