You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何识别PostgreSQL中表使用的序列及表与序列的映射关系

识别PostgreSQL中指定表的序列及映射关系

查询全量序列信息

若要查看数据库内所有序列的基础信息(含所属模式、数据类型等),执行以下SQL:

SELECT * FROM information_schema.sequences;

精准定位指定表的关联序列

如果需要查询特定表绑定的序列,可使用以下两种更精准的方式:

方法1:通过列默认值关联序列

该方法通过匹配自增列的默认值表达式,关联到对应的序列:

SELECT 
    c.table_name,
    c.column_name,
    s.sequence_name,
    s.sequence_schema
FROM 
    information_schema.columns c
JOIN 
    information_schema.sequences s 
ON 
    c.column_default LIKE '%' || s.sequence_name || '%'
WHERE 
    c.table_name = '目标表名'  -- 替换为你要查询的表名
    AND c.table_schema = 'public';  -- 表所在模式,按需替换

方法2:使用系统表pg_depend查询依赖关系

PostgreSQL的系统表pg_depend记录了对象间的依赖关系,可通过它直接关联表和序列:

SELECT 
    seq.relname AS sequence_name,
    tab.relname AS table_name
FROM 
    pg_class seq
JOIN 
    pg_depend dep ON seq.oid = dep.objid
JOIN 
    pg_class tab ON dep.refobjid = tab.oid
WHERE 
    seq.relkind = 'S'  -- 筛选出序列类型对象
    AND tab.relname = '目标表名'  -- 替换为目标表名
    AND tab.relnamespace = (SELECT oid FROM pg_namespace WHERE nspname = 'public');  -- 替换为表所在模式

内容的提问来源于stack exchange,提问作者user21707082

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 21:09:59