0

对于那里的 Oracle 专家来说,这应该是一个简单的问题。我有一个列,(例如 ID NUMBER(10),我使用 Oracle 序列生成下一个值。据此:http ://docs.oracle.com/cd/B28359_01/server.111/b28286/statements_6015 .htm 序列可以生成 28 位的最大值。我想知道的是,当生成足够的序列以达到上列的最大大小并且在序列定义中我指定 CYCLE 但我没有指定一个 MAXVALUE。Oracle 是否以一种智能的方式处理此问题并从头开始,或者我是否必须指定否则 Oracle 将继续生成大于上述 ID 列中可以存储的数字?

4

1 回答 1

5

序列和列之间没有关系——ID完全有可能有一个序列用于为多个不同的表生成键。这意味着该序列不知道您如何声明该ID列。如果您不指定 a MAXVALUE,该序列将愉快地继续生成最多 10^27 的数字。

如果您希望序列在达到 10^11 而不是 10^27 时循环,则需要指定MAXVALUE10^11 - 1 的 a。

于 2012-07-20T01:14:44.623 回答