我试图在postgres中查询约束子句以及schema和table。我已经将information_schema.check_constraints
标识为有用的表格。问题是做
select *
from information_schema.check_constraints
constraint_catalog
,constraint_schema
,constraint_name
,check_clause
中的结果。 check_clause
就是我想要的,这张表也给了我constraint_schema
。但是,它没有给表定义此约束。在我当前的数据库中,我在同一模式中的不同表上定义了相同名称的约束(这本身可能是糟糕的设计,但我需要处理的是什么)。是否也可以在这里获取表名?
答案 0 :(得分:1)
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