Postgresql 哪个视图具有序列的cache_值?

Postgresql 哪个视图具有序列的cache_值?,postgresql,Postgresql,我正在构建一个查询,用于检索pgsql-9.1.6上的序列列表。请参阅下面我的SQL集 mydb=# create sequence seq1 cache 10; CREATE SEQUENCE mydb=# create sequence seq2 cache 20; CREATE SEQUENCE mydb=# \ds List of relations Schema | Name | Type | Owner --------+------+---------

我正在构建一个查询,用于检索pgsql-9.1.6上的序列列表。请参阅下面我的SQL集

mydb=# create sequence seq1 cache 10;
CREATE SEQUENCE
mydb=# create sequence seq2 cache 20; 
CREATE SEQUENCE
mydb=# \ds
        List of relations
 Schema | Name |   Type   | Owner 
--------+------+----------+-------
 public | seq1 | sequence | pgdba
 public | seq2 | sequence | pgdba
(2 rows)

mydb=# \x
Expanded display is on.
mydb=# select * from seq1;
-[ RECORD 1 ]-+--------------------
sequence_name | seq1
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

mydb=# select * from seq2;
-[ RECORD 1 ]-+--------------------
sequence_name | seq2
last_value    | 1
start_value   | 1
increment_by  | 1
max_value     | 9223372036854775807
min_value     | 1
cache_value   | 20
log_cnt       | 0
is_cycled     | f
is_called     | f

mydb=# select * from information_schema.sequences;
-[ RECORD 1 ]-----------+--------------------
sequence_catalog        | mydb
sequence_schema         | public
sequence_name           | seq1
data_type               | bigint
numeric_precision       | 64
numeric_precision_radix | 2
numeric_scale           | 0
start_value             | 1
minimum_value           | 1
maximum_value           | 9223372036854775807
increment               | 1
cycle_option            | NO
-[ RECORD 2 ]-----------+--------------------
sequence_catalog        | mydb
sequence_schema         | public
sequence_name           | seq2
data_type               | bigint
numeric_precision       | 64
numeric_precision_radix | 2
numeric_scale           | 0
start_value             | 1
minimum_value           | 1
maximum_value           | 9223372036854775807
increment               | 1
cycle_option            | NO

信息\u schema.sequences没有缓存\u值。我可以加入哪个视图来获取序列列表中的缓存值?

据我所知,您实际上正在查看这些数据存储的位置。。。表名是序列本身的名称。在formation模式中没有视图,因为它是与Postgres相关的实现细节

旁注:Postgres使用pg_目录在信息架构内为创建视图。后者确实是跨平台的便利;真正的细节在目录中。不要错过psql的-echo-hidden选项,以了解有关内部构件的更多信息:


据我所知,您实际上正在查看数据存储的位置。。。表名是序列本身的名称。在formation模式中没有视图,因为它是与Postgres相关的实现细节

旁注:Postgres使用pg_目录在信息架构内为创建视图。后者确实是跨平台的便利;真正的细节在目录中。不要错过psql的-echo-hidden选项,以了解有关内部构件的更多信息:


有什么方法可以做到这一点吗?我不知道,但对内部结构更熟悉的人可能会插嘴,并要求有所不同。不过,据我所知,Postgres序列相当于一个单行表,其中除了序列名之外,还有与序列相关的相关数据。如果您启用-E选项来回显隐藏查询,根据我更新的答案,您会注意到信息是从pg_类、pg_属性等以及序列/表本身获取的:SELECT*from public.test.有没有任何本地方法来获取?我不知道,但对内部结构更为熟悉的人可能会附和并要求有所不同。不过,据我所知,Postgres序列相当于一个单行表,其中除了序列名之外,还有与序列相关的相关数据。如果启用-E选项来回显隐藏查询,根据我更新的答案,您会注意到信息是从pg_类、pg_属性等以及序列/表本身获取的:SELECT*from public.test。
# Output using `psql -E`

test=# create sequence test;
CREATE SEQUENCE
test=# \d+ test
********* QUERY **********
SELECT c.oid,
  n.nspname,
  c.relname
FROM pg_catalog.pg_class c
     LEFT JOIN pg_catalog.pg_namespace n ON n.oid = c.relnamespace
WHERE c.relname ~ '^(test)$'
  AND pg_catalog.pg_table_is_visible(c.oid)
ORDER BY 2, 3;
**************************

********* QUERY **********
SELECT c.relchecks, c.relkind, c.relhasindex, c.relhasrules, c.relhastriggers, c.relhasoids, pg_catalog.array_to_string(c.reloptions || array(select 'toast.' || x from pg_catalog.unnest(tc.reloptions) x), ', ')
, c.reltablespace, CASE WHEN c.reloftype = 0 THEN '' ELSE c.reloftype::pg_catalog.regtype::pg_catalog.text END, c.relpersistence
FROM pg_catalog.pg_class c
 LEFT JOIN pg_catalog.pg_class tc ON (c.reltoastrelid = tc.oid)
WHERE c.oid = '25356';
**************************

********* QUERY **********
SELECT * FROM public.test;
**************************

********* QUERY **********
SELECT a.attname,
  pg_catalog.format_type(a.atttypid, a.atttypmod),
  (SELECT substring(pg_catalog.pg_get_expr(d.adbin, d.adrelid) for 128)
   FROM pg_catalog.pg_attrdef d
   WHERE d.adrelid = a.attrelid AND d.adnum = a.attnum AND a.atthasdef),
  a.attnotnull, a.attnum,
  (SELECT c.collname FROM pg_catalog.pg_collation c, pg_catalog.pg_type t
   WHERE c.oid = a.attcollation AND t.oid = a.atttypid AND a.attcollation <> t.typcollation) AS attcollation,
  NULL AS indexdef,
  NULL AS attfdwoptions,
  a.attstorage,
  CASE WHEN a.attstattarget=-1 THEN NULL ELSE a.attstattarget END AS attstattarget
FROM pg_catalog.pg_attribute a
WHERE a.attrelid = '25356' AND a.attnum > 0 AND NOT a.attisdropped
ORDER BY a.attnum;
**************************

********* QUERY **********
SELECT pg_catalog.quote_ident(nspname) || '.' ||
   pg_catalog.quote_ident(relname) || '.' ||
   pg_catalog.quote_ident(attname)
FROM pg_catalog.pg_class c
INNER JOIN pg_catalog.pg_depend d ON c.oid=d.refobjid
INNER JOIN pg_catalog.pg_namespace n ON n.oid=c.relnamespace
INNER JOIN pg_catalog.pg_attribute a ON (
 a.attrelid=c.oid AND
 a.attnum=d.refobjsubid)
WHERE d.classid='pg_catalog.pg_class'::pg_catalog.regclass
 AND d.refclassid='pg_catalog.pg_class'::pg_catalog.regclass
 AND d.objid=25356
 AND d.deptype='a'
**************************

                 Sequence "public.test"
    Column     |  Type   |        Value        | Storage 
---------------+---------+---------------------+---------
 sequence_name | name    | test                | plain
 last_value    | bigint  | 1                   | plain
 start_value   | bigint  | 1                   | plain
 increment_by  | bigint  | 1                   | plain
 max_value     | bigint  | 9223372036854775807 | plain
 min_value     | bigint  | 1                   | plain
 cache_value   | bigint  | 1                   | plain
 log_cnt       | bigint  | 0                   | plain
 is_cycled     | boolean | f                   | plain
 is_called     | boolean | f                   | plain

test=#