有关序列的信息可以在 _vt_sequence 视图中找到,该视图可以与_v_sequence.objid = _vt_sequence.seq_id上的 _v_sequence 结合使用。
序列提取查询:
select vs.* , vts.*
from _v_sequence vs join _vt_sequence vts on vs.objid = vts.seq_id;
以下查询生成的值:
OBJID
SEQNAME
OWNER
CREATEDATE
OBJTYPE
OBJCLASS
OBJDELIM
DATABASE
OBJDB
SCHEMA
SCHEMAID
SEQ_ID
DB_ID
DATA_TYPE
MIN_VALUE
MAX_VALUE
CYCLE
INCREMENT
CACHE_SIZE
NEXT_CACHE_VAL
FLAGS
示例CREATE SEQUNCE:
CREATE SEQUENCE TEMP_PPC_SEQ AS BIGINT
START WITH 1
INCREMENT BY 2
NO MINVALUE
MAXVALUE 2147483647
NO CYCLE;
START 序列没有任何价值。 帮助获取每个序列的START值。
答案 0 :(得分:1)
您可以在顺序表中找到起始值。不幸的是,netezza不会更新此表中的最后一个值。您的答案是
SELECT s.LAST_VALUE
FROM sequence1 s;
答案 1 :(得分:0)
您可以在创建时找到DDL使用的“START WITH”值,方法是从序列对象本身中进行选择,就像它是一个表一样,并引用LAST_VALUE列。
不要被列名混淆。 LAST_VALUE不报告序列分配的最后一个值。下面的例子说明了这一点。
TESTDB.ADMIN(ADMIN)=> create sequence test_seq_1 as bigint start with 12345;
CREATE SEQUENCE
TESTDB.ADMIN(ADMIN)=> create temp table seq_out as select next value for test_seq_1 from _v_vector_idx a cross join _v_vector_idx b;
INSERT 0 1048576
TESTDB.ADMIN(ADMIN)=> select * from test_seq_1;
SEQUENCE_NAME | LAST_VALUE | INCREMENT_BY | MAX_VALUE | MIN_VALUE | CACHE_VALUE | LOG_CNT | IS_CYCLED | IS_CALLED | DATATYPE
---------------+------------+--------------+---------------------+-----------+-------------+---------+-----------+-----------+----------
TEST_SEQ_1 | 12345 | 1 | 9223372036854775807 | 1 | 100000 | 1 | f | f | 20
(1 row)
TESTDB.ADMIN(ADMIN)=> select next value for test_seq_1;
NEXTVAL
---------
1060921
(1 row)