SQL序列的“START WITH”部分的目的是什么?

时间:2014-09-10 22:06:39

标签: sql oracle

在oracle SQL中,序列的定义如下:

CREATE SEQUENCE sup_seq
    MINVALUE 1
    MAXVALUE 999
    START WITH 5
    INCREMENT BY 1
    CACHE 20;

拥有“START WITH”部分有什么意义?如果我们有一个最小值,那是不是暗示我们从那个价值开始?关于START WITH有什么用处?

1 个答案:

答案 0 :(得分:5)

通常,在定义序列时指定MINVALUESTART 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)重新启动。这不是一个特别常见的用例,但它完全有可能。