我是靠谱客的博主 仁爱钢笔,最近开发中收集的这篇文章主要介绍PostgreSQL 数据字典表——查询列属性,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

作者:moocbaby

日期:2019-2-12

新年快乐,开工大吉!

表名用途
pg_attribute列信息
pg_class表信息
pg_type数据类型
pg_constraint约束,如主键

-----------------------------------------------------
# pg_attribute 列信息
## attrelid 表名,关联 pg_class.oid 
## atttypid 数据类型,关联 pg_type.oid
## attlen 数据长度,同 pg_type.typlen
## attname 列名
## attnum 列序号
## attnotnull 列是否空,true:not null;false:null

# pg_class 表信息
## relname 表名


# pg_type 数据类型 
## typename 数据类型名

# pg_constraint 约束
## contype 'p'主键
## conkey 是一个数组,如{1}或者{1,2},可以用unnest(conkey)函数将数组分开,然后关联pg_attribute.attnum 获取键对应的列
## conrelid 关联 pg_class.oid

样例sql(未测试),
如查询某表的表名、列、序号、是否主键、是否非空以及数据类型,数据类型长度

select c.relname,a.attname,a.attnum,case when conkey is not null then 'PK' else '' end,case a.attnotnull when TRUE then 'not null' ELSE '' END, d.typename, pg_catalog.format_type(a.atttypeid,a.atttypmod) from pg_attribute a inner join pg_class c on a.attrelid=c.oid left join pg_type d on a.atttypid=d.oid left join (select conrelid, UNNEST(conkey) conkey from pg_constraint where contype='p') b on  c.oid=b.conrelid and a.attnum=b.conkey where c.relname='xx' and a.attnum>0
order by a.attnum;
 

最后

以上就是仁爱钢笔为你收集整理的PostgreSQL 数据字典表——查询列属性的全部内容,希望文章能够帮你解决PostgreSQL 数据字典表——查询列属性所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部