sách gpt4 ai đã đi

postgresql - 如何从 Postgresql 目录表中检索 Postgresql 序列缓存值?

In lại 作者:行者123 更新时间:2023-11-29 12:33:43 27 4
mua khóa gpt4 Nike

我已经使用下面的查询从 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 ] name [ INCREMENT [ BY ] increment ]

[ MINVALUE minvalue | NO MINVALUE ] [ MAXVALUE maxvalue | NO MAXVALUE ]

[ START [ WITH ] start ]

[ RESTART [ [ WITH ] restart ] ]

[ CACHE cache ] [ [ NO ] CYCLE ]

[ OWNED BY { table_name.column_name | NONE } ]

是否有任何 Postgres 函数可以获取此序列缓存值?

谢谢,

拉维

1 Câu trả lời

使用 PostgreSQL 10 或更新版本,可以从系统 View 中获取缓存大小 pg_sequences或系统表 pg_sequence :

SELECT cache_size FROM pg_catalog.pg_sequences
WHERE schemaname='public' and sequencename='s';

或者替代地

SELECT seqcache FROM pg_catalog.pg_sequence
WHERE seqrelid = 'public.s'::regclass;

在第二个查询中省略模式限定(công cộng 或更一般的模式名称)以自动使用 search_path 而不是固定模式。

对于早于 v10 的版本,您可以像查询表格一样查询序列本身。

Ví dụ:

CREATE SEQUENCE s CACHE 10;
SELECT cache_value FROM s;

kết quả:

 cache_value 
-------------
10

hoặc

\x
SELECT * FROM s;

kết quả:

-[ RECORD 1 ]-+--------------------sequence_name | slast_value | 1start_value | 1increment_by | 1max_value | 9223372036854775807min_value | 1cache_value | 10log_cnt | 0is_cycled | fis_called | f

关于postgresql - 如何从 Postgresql 目录表中检索 Postgresql 序列缓存值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18085197/

27 4 0
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com