我已使用以下查询从Postgresql目录表中获取Sequence对象的完整信息
select s.sequence_name, s.start_value, s.minimum_value, s.maximum_value, s.increment, s.cycle_option
from information_schema.sequences s
where s.sequence_schema='schema1'
无法获得的另一个属性值是“缓存”值。
使用Postgresql 9.2
以下是带缓存的序列的DDL语法
ALTER SEQUENCE [IF EXISTS]名称[INCREMENT [BY]增量]
[MINVALUE minvalue | NO MINVALUE] [MAXVALUE maxvalue |没有MAXVALUE ]
[START [WITH] start]
[RESTART [[WITH] restart]]
[CACHE缓存] [[NO] CYCLE]
[OWNED BY {table_name.column_name |没有}]
是否有任何Postgres函数来获取此序列缓存值?
谢谢,
拉维
答案 0 :(得分:2)
您可以使用其名称查询序列,就像它是一个表一样。
例如:
CREATE SEQUENCE s CACHE 10;
SELECT cache_value FROM s;
结果:
cache_value ------------- 10 (1 row)
或者
\x
SELECT * FROM s;
结果:
-[ RECORD 1 ]-+-------------------- sequence_name | s last_value | 1 start_value | 1 increment_by | 1 max_value | 9223372036854775807 min_value | 1 cache_value | 10 log_cnt | 0 is_cycled | f is_called | f
答案 1 :(得分:1)
这在Postgres 10中不再起作用。您可以使用
select seqcache from pg_sequence where seqrelid = 's'::regclass;