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