Postgresql 带有模式和表的查询约束子句(Postgres)

Postgresql 带有模式和表的查询约束子句(Postgres),postgresql,Postgresql,我试图在postgres中查询约束子句以及模式和表。我已经确定了信息\u模式。检查约束作为一个有用的表。问题是,做什么 select * from information_schema.check_constraints 结果是constraint\u目录,constraint\u模式,constraint\u名称,check\u子句。check_子句是我想要的,此表还提供了约束_模式。但是,它不会给出定义此约束的表。在我当前的数据库中,我在同一模式中的不同表上定义了具有相同名称的约束(这本身

我试图在postgres中查询约束子句以及模式和表。我已经确定了
信息\u模式。检查约束作为一个有用的表。问题是,做什么

select *
from information_schema.check_constraints
结果是
constraint\u目录
constraint\u模式
constraint\u名称
check\u子句
check_子句
是我想要的,此表还提供了
约束_模式
。但是,它不会给出定义此约束的表。在我当前的数据库中,我在同一模式中的不同表上定义了具有相同名称的约束(这本身可能是糟糕的设计,但我需要处理)。是否也可以在此处获取表名?

选择
select
  conname,
  connamespace::regnamespace as schemaname,
  conrelid::regclass as tablename,
  consrc as checkclause,
  pg_get_constraintdef(oid) as definition
from
  pg_constraint
where
  contype = 'c'
  and conrelid <> 0; -- to get only table constraints
康纳姆, connamespace::regnamespace作为schemaname, conrelid::regclass作为表名, consrc作为检查条款, pg_get_constraintdef(oid)作为定义 从…起 pg_约束 哪里 contype='c' 和conrelid 0;——仅获取表约束的步骤