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

查询PostgreSQL中外键匹配类型的存储表及字段

PostgreSQL外键匹配类型的存储位置

嘿,这个问题问得很精准!在PostgreSQL中,外键的匹配类型(MATCH FULL、MATCH PARTIAL、MATCH SIMPLE)信息存储在系统表pg_constraint的conmatchtype字段里。

字段取值说明

这个字段用单个字符来表示匹配类型:

  • 's' 对应 MATCH SIMPLE(这是PostgreSQL外键的默认匹配类型)
  • 'f' 对应 MATCH FULL
  • 'p' 对应 MATCH PARTIAL

查询示例

如果你想查看某个表的所有外键及其匹配类型,可以用下面的SQL查询(记得替换成你的schema和表名):

SELECT
    conname AS foreign_key_name,
    -- 获取完整的约束定义文本
    pg_get_constraintdef(c.oid) AS constraint_definition,
    -- 把字符映射为易读的匹配类型名称
    CASE conmatchtype
        WHEN 'f' THEN 'MATCH FULL'
        WHEN 'p' THEN 'MATCH PARTIAL'
        WHEN 's' THEN 'MATCH SIMPLE'
    END AS match_type
FROM pg_constraint c
-- 关联到表信息
JOIN pg_class t ON c.conrelid = t.oid
-- 关联到schema信息
JOIN pg_namespace n ON t.relnamespace = n.oid
WHERE 
    contype = 'f'  -- 只筛选外键约束
    AND n.nspname = 'public'  -- 替换为你的目标schema
    AND t.relname = 'your_target_table';  -- 替换为你的目标表名

顺便提一句,pg_constraint是PostgreSQL存储所有约束(主键、外键、唯一约束等)元数据的核心系统表,你能从这里获取到约束的几乎所有关键信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:40:47