我正在将使用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
之类的东西?
答案 0 :(得分:1)
next_hi类似于用于生成身份(id)的乘法的会话密钥,因此您可以插入任何您想要的内容,例如1或2或10,每个用户递增next_hi,并使用它生成所有身份,直到最大值值然后再通过递增请求另一个next_hi ...使用此策略,所有身份都是唯一的......并且它们可以在本地生成
Is there a practical way of migrating from identity columns to hilo keys?
http://fabiomaulo.blogspot.com/2009/02/nh210-generators-behavior-explained.html