1

Identityジェネレーターを使用するクラスをhiloを使用するクラスに変換しています。また、エンティティごとに異なる行を持つ単一のテーブルを使用しています。

EntityId (table)
 - EntityName
 - NextHigh

古いテーブル:

Patients (table)
 - Id (identity)

新しいテーブル:

PatientRecord (table)
 - Id 

データの整合性を維持するために、既存のPatients.Idを新しいPatientRecord.Idとして使用します。

insert into PatientRecord (Id) 
select Id from Patients

そして、EntityIdエントリを作成します。

insert into EntityId values ('PatientRecord', ??)

??次のhi値はどこにありますか。ここではどのような値を使用する必要がありますか?デフォルトでは、列の初期化は1になります。それを使用するだけですか、それとも次のようなものを使用する必要がありますselect MAX(Id) from PatientRecordか?

4

1 に答える 1

1

next_hiは、ID(ID)を生成するための乗算に使用されるセッションキーのようなものです。たとえば、1、2、または10のように好きなものを挿入できます。各ユーザーは、next_hiをインクリメントし、それを使用して、最大値まですべてのIDを生成します。再度、インクリメントして別のnext_hiを要求します...この戦略では、すべてのIDが一意です...ローカルで生成できます

ID列からヒロキーに移行する実用的な方法はありますか?

http://fabiomaulo.blogspot.com/2009/02/nh210-generators-behavior-explained.html

于 2012-09-13T15:00:47.437 に答える