我什么时候应该按顺序使用CYCLE?

时间:2018-04-20 14:38:24

标签: sql postgresql database-sequence

我在PostgreSQL数据库中使用序列将行插入表中。

创建序列时,我从未在它们上使用CYCLE选项。我的意思是他们可以生成相当大的数字(据我记忆的大约为2 ^ 63)而且我真的不明白为什么我希望序列回到零。所以我的问题是:

创建序列时应该何时使用CYCLE

你有一个有意义的例子吗?

1 个答案:

答案 0 :(得分:0)

似乎序列可以将CYCLE用于其他目的,而不是用于生成主键。

这是在不需要其价值唯一性的情况下;实际上恰恰相反,当预期值会循环回来并在一段时间后重复时。

例如:

  • 当生成必须返回初始值的数字并在某个时刻重复自己时,出于任何原因(例如,实施“宾果”游戏)。
  • 当序列是临时标识符时,该标识符将持续很短的一段时间,并且在其生命周期中将是唯一的。
  • 当字段很小 - 或者可以接受有限数量的值时 - 如果它们重复它们并不重要。
  • 当实体中有另一个字段识别它时,序列值用于其他字段。
  • 当实体具有复合唯一键且序列值只是其中的一部分时。
  • 使用序列值在大集合上生成均匀的值分布时,虽然这几乎不是随机赋值。
  • 任何其他循环数生成。