postgresql常见系统表

pg_class
字段类型描述
relnamename数据类型名
relnamespaceoid空间名,引用pg_namespace.oid
reltypeoid表行数据类型,引用pg_type.oid
relowneroid对象所有者,引用pg_authid.oid
relamoid索引类型引用pg_am.oid
relfilenodeoid对象存储在磁盘上的文件名
reltablespaceoid对象所在的表空间,引用pg_tablespace.oid
relpagesint4表或索引占用的磁盘页面数
reltuplesfloat4表行数,估计值
reltoastoid与此表关联的toast的ID,引用pg_class.oid
reltoastidxidoid如果是toast表则为oid,否则为0,引用pg_class.oid
relhasindexbool表是否有索引
relissharedbool是否在整个集群中由所有数据库共享
relkindcharr:普通表;I:索引;S:序列;v:视图;c:复合类型;s:toast表
relnattsint2数据表中用户字段的数量
relchecksint2检查约束的数量
reltriggersint2触发器的数量
relhasoidsbool对象中的每行是否都生成一个力度
rerelhaskeybool表是否存在主键
relhasrulesbool表是否有规则
relhassubclassbool表是否有子表
relaclaclitem[]访问权限
pg_index

pg_index存储索引的具体信息

字段描述
indexrelid索引在pg_class里记录的oid
indrelid使用这个表在pg_class里的记录的oid
indnatts索引中的字段数
indisunique是否为唯一索引
indisprimary是否是主键
indimmediate立即执行唯一性检查
indisclustered是否表最后簇聚在这个索引
indisvalid是否对当前查询有效
indcheckxmin为真,则查询不能使用索引,直到pg_index行的xmin低于其transactionxmin事件视界
indisready索引目前是否为插入做好准备
indkey包含indnatts值的数组,这些数组值表示这个索引建立的表字段
indclass对于索引键字里面的每个字段,这个字段都包含一个所使用操作符类的oid
indoption这是一个存储每列标志位indnatts值的数组
indexprs表达式树用于那些非简单字段引用的索引属性
indpred部分索引断言的表达式树。如果不是部分索引则为空
pg_tablespace

pg_tablespace存储空间信息

字段描述
spcname表空间名
spcowner表空间的所有者
spcacl访问权限
spcoptions表空间级的选择
pg_namespace

pg_namespace存储命名空间

字段描述
nspnamce名空间名称
nspowner名空间的所有者
nspacl访问权限
pg_attribute

pg_attribute存储表的属性信息

字段描述
attrelid字段所属的表oid
attname表字段名
atttypid字段数据类型oid
attstattarget控制analyze为这个字段积累的统计细节级别
attlen本字段类型的pg_type.typlen的副本
attnum字段编号,attnum>0的字段是自定义表结构字段
attdims是否为数组
attcacheoff在磁盘上的时候总是-1,如果加载内存中的行描述器中,它可能会被更新以缓冲在行中字段的偏移量
atttypmod记录创建新表时支持的类型特定的数据
attbyval这个字段类型的pg_type.typbyval的副本
attstorage这个字段类型的pg_type.typstorge的副本。对可压缩的数据类型,这个字段可以在字段创建之后改变,以便控制存储策略
atttalign这个字段类型的pg_type.typalign的副本
attnotnull非空约束
atthasdef字段有一个缺省值
attisdropped已经删除了这个字段,不再有效
attislocal局部定义关系中
attinhcount这个字段所拥有的直接祖先的个数,若非0则不能被删除或重命名
attacl列级访问权限
attoptions属性级别选项
-- 查看所有系统视图
select relkind,relname
from pg_class
where relnamespace=(select oid from pg_namespace where nspname ='pg_catalog') and relkind = 'v' 
order by 1,2;

-- 查看所有系统表
select relkind,relname
from pg_class
where relnamespace=(select oid from pg_namespace where nspname='pg_catalog') and relkind = 'r'
order by 1,2;

-- 查看单个表字段名
select attname from pg_attribute  where attrelid = (select 'table_name'::regclass::oid) and attnum > 0
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值