如何从Postgresql目录表中检索Postgresql序列缓存值?
我使用下面的查询从Postgresql目录表中获取序列对象的完整信息如何从Postgresql目录表中检索Postgresql序列缓存值?,postgresql,Postgresql,我使用下面的查询从Postgresql目录表中获取序列对象的完整信息 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
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[如果存在]名称[增量[按]增量]
[MINVALUE MINVALUE |无MINVALUE][MAXVALUE MAXVALUE |无MAXVALUE
]
[开始[用]开始]
[重新启动[[使用]重新启动]]
[高速缓存][[NO]循环]
[由{table_name.column_name | NONE}所有]
是否有任何Postgres函数可以获取此序列缓存值
谢谢
Ravi对于PostgreSQL 10或更高版本,可以从系统视图或系统表中获取缓存大小: 或者
SELECT seqcache FROM pg_catalog.pg_sequence
WHERE seqrelid = 'public.s'::regclass;
在第二次查询中省略模式限定(public
或更一般的模式名称),以自动使用search\u path
而不是固定模式
对于v10之前的版本,您可以像查询表一样查询序列本身
例如:
CREATE SEQUENCE s CACHE 10;
SELECT cache_value FROM s;
结果:
cache_value
-------------
10
-[ 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
或
结果:
cache_value
-------------
10
-[ 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]-+--------------------
序列名称
最后一个|u值| 1
起始值| 1
增加| 1
最大值| 9223372036854775807
最小值| 1
缓存|u值| 10
log_cnt|0
是循环的吗
你叫| f吗
这不再适用于10级研究生。你可以用
select seqcache from pg_sequence where seqrelid = 's'::regclass;
这在最新版本的Postgres中不起作用。@Colin'tHart:谢谢你的提醒,修正了。