我想编写一个查询来列出数据库中的 check constraints
及其约束定义。
我无法找到一列来查找检查约束定义,就像 search condition
oracle
表中的 all_constraints
列一样。
有 PG 替代品吗?
答案 0 :(得分:1)
目录 pg_constraint 存储表上的检查、主键、唯一键、外键和排除约束,contype 列保存有关约束类型 i,e 的数据
c = check constraint
f = foreign key constraint
p = primary key constraint
u = unique constraint
t = constraint trigger
x = exclusion constraint
select pgc.conname as constraint_name,
ccu.table_schema as table_schema,
ccu.table_name,
ccu.column_name,
pg_get_constraintdef(pgc.oid)
from pg_constraint pgc
join pg_namespace nsp on nsp.oid = pgc.connamespace
join pg_class cls on pgc.conrelid = cls.oid
left join information_schema.constraint_column_usage ccu
on pgc.conname = ccu.constraint_name
and nsp.nspname = ccu.constraint_schema
where contype ='c'
order by pgc.conname;