【问题标题】:Why Netezza Sequence next value giving random values?为什么 Netezza 序列下一个值给出随机值?
【发布时间】:2013-01-31 14:14:24
【问题描述】:

顺序:

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。我怎样才能使它们连续?

【问题讨论】:

    标签: netezza


    【解决方案1】:

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

    【讨论】:

    • 这完美地回答了它。序列不是获得顺序的方法。就是得到一个唯一的标识符,应该完全不关心值是什么,只要是唯一的就行了。
    【解决方案2】:

    您可以使用 Row_number() over(order by ) 来获取序列值

    请往下看

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

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

    【讨论】:

      【解决方案3】:

      您是否正在尝试创建一个自动增量列? Netezza 不这样做。此外,如果您使用序列生成器,它将是唯一的,但不是连续的——序列中会有漏洞。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-07-25
        • 1970-01-01
        • 2021-05-29
        • 1970-01-01
        • 1970-01-01
        • 2013-02-08
        • 1970-01-01
        相关资源
        最近更新 更多