在oracle SQL中,序列的定义如下:
CREATE SEQUENCE sup_seq
MINVALUE 1
MAXVALUE 999
START WITH 5
INCREMENT BY 1
CACHE 20;
拥有“START WITH”部分有什么意义?如果我们有一个最小值,那是不是暗示我们从那个价值开始?关于START WITH
有什么用处?
答案 0 :(得分:5)
通常,在定义序列时指定MINVALUE
和START WITH
并使这些值不同是很不寻常的。就个人而言,我并不认为我曾经明确指定MINVALUE
,因为我发现START WITH
更加不言自明。
两个值有用的一种情况是设置为循环的序列。例如
CREATE SEQUENCE sup_seq
MINVALUE 1
MAXVALUE 999
START WITH 5
INCREMENT BY 1
CACHE 20
CYCLE;
将从5(start with
)开始,通过999(maxvalue
)生成值,然后从1(minvalue
)重新启动。这不是一个特别常见的用例,但它完全有可能。