Home >Database >Mysql Tutorial >PostgreSQL中文学习手册(系统表)

PostgreSQL中文学习手册(系统表)

WBOY
WBOYOriginal
2016-06-07 17:13:451308browse

PostgreSQL中文学习手册(系统表) ,该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型

一、pg_class:

    该系统表记录了数据表、索引(仍然需要参阅pg_index)、序列、视图、复合类型和一些特殊关系类型的元数据。注意:不是所有字段对所有对象类型都有意义。

名字 类型 引用 描述

relname name   数据类型名字。

relfilenode oid   对象存储在磁盘上的文件名,如果没有则为0。

relpages int4   该数据表或索引所占用的磁盘页面数量,查询规划器会借助该值选择最优路径。

reltuples float4   表中行的数量,该值只是被规划器使用的一个估计值。

relhasindex bool    如果这是一个数据表而且至少有(或者最近有过)一个索引,则为真。它是由CREATE INDEX设置的,但DROP INDEX不会立即将它清除。如果VACUUM发现一个表没有索引,那么它清理 relhasindex。

relisshared bool    如果该表在整个集群中由所有数据库共享,则为真。 

relkind char   r = 普通表,i = 索引,S = 序列,v = 视图, c = 复合类型,,s = 特殊,t = TOAST表

relnatts int2   数据表中用户字段的数量(除了系统字段以外,如oid)。在pg_attribute里肯定有相同数目的数据行。见pg_attribute.attnum.

relchecks int2   表中检查约束的数量,参阅pg_constraint表。

reltriggers int2   表中触发器的数量;参阅pg_trigger表。

relhasoids bool   如果我们为对象中的每行都生成一个OID,则为真。

relhaspkey bool   如果该表存在主键,则为真。

relhasrules  bool   如表有规则就为真;参阅pg_rewrite表。

relhassubclass bool    如果该表有子表,则为真。

relacl aclitem[]   访问权限。

    见如下应用示例:
    #查看指定表对象testtable的模式
    postgres=# SELECT relname,relnamespace,nspname FROM pg_class c,pg_namespace n WHERE relname = 'testtable' AND relnamespace = n.oid;
      relname   | relnamespace | nspname
    -------------+--------------+---------
     testtable   |         2200    | public
    (1 row)
    #查看指定表对象testtable的owner(即role)。
    postgres=# select relname,rolname from pg_class c,pg_authid au where relname = 'testtable' and relowner = au.oid;
      relname   | rolname
    -------------+----------
     testtable   | postgres
    (1 row)

linux

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn