在项目中,我正在Id工作,某些插入语句由hdbsequences管理。现在,我想为另一个已经有现有数据的表创建一个序列,并希望它从该表的数据的最大id值开始。
我知道我可以手动为其设置“ start_with” -Property,但这不是一个选择,因为稍后我们需要将该序列传输到另一个系统,在该系统中该对应表中的数据与当前表中的数据不同系统(因此ID是不同的)。
我还知道“ reset_by”属性,可以在其中选择表的最大值,问题是我不知道如何显式触发该值。
我已经发现的是,每当数据库重新启动时,都会调用“ reset_by” -Property,但是不幸的是,这也不是一种选择,因为我们无法重置数据库以不破坏其他系统。 / p>
提前感谢您的时间和帮助。
答案 0 :(得分:1)
您可以执行ALTER SEQUENCE并通过“重新启动”选项设置下一个序列用法要使用的值。
例如(必须替换模式名称和序列名称):
alter sequence "<schema name>"."<sequence name>" restart with 100;
“ restart with”选项后面的整数值必须设置为下一步必须使用的值。因此,如果您的上一个ID为100,请将其设置为101。101是序列中下一个NEXTVAL调用返回的值。