我正在创建需要收集数据库中所有类型数据的内容,包括每列使用的约束类型。不幸的是,似乎有两种方法可以为列添加约束(或者甚至可能是我不知道的更多),您可以添加UNIQUE CONSTRAINT,也可以添加带有UNIQUE的INDEX。
我有这个问题:
select * from information_schema.table_constraints WHERE constraint_type='UNIQUE';
但问题是它没有检测到应用于INDEX的UNIQUE约束,它只能自己检测UNIQUE CONSTRAINTS,例如,它找不到:
Indexes:
"index_videos_on_slug" UNIQUE, btree (slug)
有谁知道我可以获得这些信息的方式?感谢。
答案 0 :(得分:1)
pg_catalog
架构information_schema
建立在此之上(作为一组视图) pg_index.indisunique
(在pg_catalog架构中)就是你想要的。
BTW:如果要将现有索引提升为约束,可以使用alter ... using ...语法:
ALTER TABLE ... ADD constraint ... USING your_index_name;