使用模式和表查询约束子句(Postgres)

时间:2017-05-09 00:17:36

标签: postgresql

我试图在postgres中查询约束子句以及schema和table。我已经将information_schema.check_constraints标识为有用的表格。问题是做

select *
from information_schema.check_constraints

constraint_catalogconstraint_schemaconstraint_namecheck_clause中的结果。 check_clause就是我想要的,这张表也给了我constraint_schema。但是,它没有给表定义此约束。在我当前的数据库中,我在同一模式中的不同表上定义了相同名称的约束(这本身可能是糟糕的设计,但我需要处理的是什么)。是否也可以在这里获取表名?

1 个答案:

答案 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

About pg_constraint

About Object Identifier Types