シーケンスの主な目的は、保証のソースを提供することです。 一意の識別子。これらは技術的な鍵であり、一般的に言えば、それらの実際の値は無関係であるはずです。つまり、フォルダ番号をユーザーに表示する必要がありますか?
気になる場合は、NOCACHEを使用してください。これにより、表示されるギャップが最小限に抑えられます。また、フォルダーを頻繁に作成しない限り、少数の数値をキャッシュしないことによるパフォーマンスの低下に気付くことはありません。トランザクションがロールバックされたり、その他の理由で失敗したりした場合でも、ギャップが発生する可能性がありますが、頻度は低いはずです。そうでない場合は、フォルダの番号付けよりも大きな心配事があります!
単調に増分する系列を生成する他の方法は、実装が面倒であるか(コード制御テーブルをトリガーする)、一意であることが保証されていない(max(id)+1
を使用)。 トリガーで)。コード制御テーブル(最後に割り当てられたフォルダーIDを具体的に追跡するテーブル)を使用する場合は、以前の回答で私が書いた
どのように実装する必要があります。コード制御テーブルの利点の1つは、グループでカウントを維持できることです。したがって、ユーザーごとにフォルダIDを実行し、それらを個別にインクリメントすることができます。