SequenceGenerator が ID 値をスキップするのはなぜですか?
P粉919464207
P粉919464207 2024-03-28 18:29:23
0
2
380

次のコードでアーティスト ID を設定します:

リーリー

私の ArtistId が時々値をスキップして順序が狂う理由を誰かが説明してもらえますか?無効なデータをテーブルに挿入しようとしても (例外がスローされた場合)、データはテーブル エントリによって拒否されますが、artistId は目に見えずに入力されることに気付きました。これにより、テーブルは次の状態になります:

###名前### ###姓### 1マーシャルトゥパック前述したように、既に存在するアーティストを挿入しようとしているため、ArtistId 値 2 はスキップされますが、一意である必要があるように設定しました。したがって、例外がスローされ、データは拒否されますが、値 2 の ID は何らかの形で埋められます (またはスキップされます)。この状況を回避するには、どうすればこの問題を解決できるでしょうか。助けていただけますか?
P粉919464207
P粉919464207

全員に返信(2)
P粉547420474

Oracle データベースを使用しているようですね。 ID は挿入前に生成されるため、挿入に失敗すると ID が失われます。さらに、サーバー クラスターを使用する場合、ID 範囲が各サーバーに割り当てられ、連続した挿入間で大幅に異なる可能性があります。 簡単に言うと、ID が連続していて、値が欠落していないことは信頼できないということです。これは他のデータベースでも機能する可能性が高くなります。

いいねを押す +0
P粉898049562

これはほぼ通常の動作です。

シーケンス ジェネレーターの唯一の役割は、さまざまな整数値を生成することだけであり、それ以上のことはありません。

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
アーティストID
マザーズ 3
シャクール