SAP HANA hdbsequence 手动触发 reset_by
SAP HANA hdbsequence trigger reset_by manually
在我工作的项目中,某些插入语句的 Id 由 hdbsequences 管理。现在我想为另一个已经有数据的 table 创建一个序列,我希望它以 table.
数据的最大 ID 值开始
我知道我可以手动将 "start_with"-属性 设置为它,但这不是一个选项,因为我们需要稍后将序列传输到另一个系统,其中相应 table 与当前系统不同(因此 ID 不同)。
我也知道 "reset_by"-属性 其中我可以 select table 的最大值,问题是我不知道如何明确触发。
我已经发现,只要重新启动数据库,就会调用 "reset_by"-属性,但不幸的是,这也不是一个选项,因为我们无法重置数据库不干扰其他系统。
提前感谢您的宝贵时间和帮助。
您可以执行 ALTER SEQUENCE 并使用选项 "restart with" 设置下一个序列用法要使用的值。
例如(必须替换模式名称和序列名称):
alter sequence "<schema name>"."<sequence name>" restart with 100;
"restart with" 选项后面的整数值必须设置为接下来必须使用的值。因此,如果您的最后一个 ID 是 100,请将其设置为 101。101 是序列上的下一个 NEXTVAL 调用返回的值。
在我工作的项目中,某些插入语句的 Id 由 hdbsequences 管理。现在我想为另一个已经有数据的 table 创建一个序列,我希望它以 table.
数据的最大 ID 值开始我知道我可以手动将 "start_with"-属性 设置为它,但这不是一个选项,因为我们需要稍后将序列传输到另一个系统,其中相应 table 与当前系统不同(因此 ID 不同)。
我也知道 "reset_by"-属性 其中我可以 select table 的最大值,问题是我不知道如何明确触发。
我已经发现,只要重新启动数据库,就会调用 "reset_by"-属性,但不幸的是,这也不是一个选项,因为我们无法重置数据库不干扰其他系统。
提前感谢您的宝贵时间和帮助。
您可以执行 ALTER SEQUENCE 并使用选项 "restart with" 设置下一个序列用法要使用的值。
例如(必须替换模式名称和序列名称):
alter sequence "<schema name>"."<sequence name>" restart with 100;
"restart with" 选项后面的整数值必须设置为接下来必须使用的值。因此,如果您的最后一个 ID 是 100,请将其设置为 101。101 是序列上的下一个 NEXTVAL 调用返回的值。