IBM DB2的下一个价值值得关注

时间:2019-05-06 12:38:24

标签: sql db2

我想知道使用NEXT VALUE FOR时是否将数据区域锁定在后台?我要确保它不会创建重复的序列号。

1 个答案:

答案 0 :(得分:0)

对于Db2 for i系列,sequence的参考文档在这里。

reference文档(适用于Db2-LUW)具有您所需要的。

  

为序列生成一个值时,该值将被使用,并且在下次请求该值时,将生成一个新值。即使包含NEXT VALUE表达式的语句失败或回滚也是如此。

     

但是,如果在查询中有多个指定相同序列名称的NEXT VALUE表达式实例,则该序列的计数器对于结果的每一行仅递增一次,并且所有NEXT VALUE实例返回相同的值一行结果。

请注意,Db2不保证将返回序列号。因此,如果您的交易回滚,只要至少不重置序列,该序列中以前消耗的任何值将来都不会返回。