为什么Netezza序列下一个值给出随机值?

时间:2013-01-31 14:14:25

标签: netezza

序列:

CREATE SEQUENCE STG.TEMP_PPC_SEQ AS BIGINT
    START WITH 1
    INCREMENT BY 1
    NO MINVALUE
    MAXVALUE 2147483647
    NO CYCLE;

选择查询:

SELECT TPLCST.code,NEXT VALUE FOR STAGING.STG.TEMP_PPC_SEQ
FROM TEMP_PRODUCT_LIFE_CYCLE_STATUS_TYPE TPLCST

结果:

CODE    NEXTVAL
30  8
80  10008
40  30008
50  40015
10  40016
20  20008

我随机获得nextval。我怎样才能使它们连续?

3 个答案:

答案 0 :(得分:7)

它们是随机的,因为Netezza是大规模并行的,每个SPU都有自己的序列值块。

答案 1 :(得分:0)

您可以使用Row_number()(按<>顺序)获取序列值

请阅读以下内容

http://www.enzeecommunity.com/message/8914

http://www.enzeecommunity.com/message/3272

答案 2 :(得分:0)

您是否要创建自动增量列? Netezza不会这样做。而且,如果您使用序列生成器,它将是唯一的但不是连续的–序列中将有孔。