Postgresql 为特定父表的关系选择所有外键约束定义

Postgresql 为特定父表的关系选择所有外键约束定义,postgresql,Postgresql,我有一个名为users的父表,它具有多个关系email和phone\u number。users表位于名为it的架构中,而email和phone\u numbers表位于名为da的架构中。现在我需要查询属于it.users表的所有约束定义。在伪代码中,这将是: SELECT relational_table_name, constraint_def FROM some_information_tables WHERE parent_schema_name = 'users'

我有一个名为
users
的父表,它具有多个关系
email
phone\u number
users
表位于名为
it
的架构中,而
email
phone\u numbers
表位于名为
da
的架构中。现在我需要查询属于
it.users
表的所有约束定义。在伪代码中,这将是:

SELECT relational_table_name, constraint_def 
  FROM some_information_tables 
  WHERE parent_schema_name = 'users' 
    AND parent_schema_name = 'it'
在现实世界中如何做到这一点?

明白了:

SELECT c.relname as relation, c2.relname as parent, pg_get_constraintdef(cons.oid) as condef
FROM pg_class c
LEFT OUTER JOIN pg_constraint cons ON cons.conrelid = c.oid
LEFT OUTER JOIN pg_class c2 ON cons.confrelid = c2.oid
WHERE c.relkind = 'r'
AND (cons.contype = 'f')
AND c2.relname in ('users')
GROUP BY relation, parent, condef
明白了:

SELECT c.relname as relation, c2.relname as parent, pg_get_constraintdef(cons.oid) as condef
FROM pg_class c
LEFT OUTER JOIN pg_constraint cons ON cons.conrelid = c.oid
LEFT OUTER JOIN pg_class c2 ON cons.confrelid = c2.oid
WHERE c.relkind = 'r'
AND (cons.contype = 'f')
AND c2.relname in ('users')
GROUP BY relation, parent, condef