PG中常用的系统视图
1)pg_tables
名称 类型 引用 描述
schemaname name pg_namespace.nspname 包含表的模式名
tablename name pg_class.relname 表名
tableowner name pg_authid.rolname 表拥有者的名字
tablespace name pg_tablespace.spcname 包含表空间的名字
hasindexes boolean pg_class.relhasindex 如果表有(或最近有过)索引,此列为真
hasrules boolean pg_class.relhasrules 如果表有(或曾经有过)规则,此列为真
hastriggers boolean pg_class.relhastriggers 如果表有(或曾经有过)触发器,此列为真
rowsecurity boolean pg_class.relrowsecurity 如果表上启用了行安全性,此列为真
2)pg_indexes
名称 类型 引用 描述
schemaname name pg_namespace.nspname 包含表和索引的模式名
tablename name pg_class.relname 此索引的基表的名字
indexname name pg_class.relname 索引名
tablespace name pg_tablespace.spcname 包含索引的表空间名(如何是数据库的默认值则为空)
indexdef text 索引定义(CREATE INDEX命令的重构)
3)pg_views
名称 类型 引用 描述
schemaname name pg_namespace.nspname 包含视图的模式名
viewname name pg_class,relname 视图名称
viewowner name pg_authid.rolname 视图拥有者的名字
definition text 视图定义(一个重构的SELECT查询)
4)pg_user
名字 类型 描述
usename name 用户名
usesysid oid 用户的ID
usecreatedb bool 用户是否能创建数据库
usesuper bool 用户是否为超级用户
userepl bool 用户能否开启流复制以及将系统转入/转出备份模式。
usebypassrls bool 用户能否绕过所有的行级安全性策略,
passwd text 不是口令(总是显示为********)
valuntil timestamptz 口令过期时间(只用于口令认证)
useconfig text[] 运行时配置变量的会话默认值
5)pg_roles
名称 类型 引用 描述
rolname name 角色名
rolsuper bool 角色是否具有超级用户权限?
rolinherit bool 如果此角色是另一个角色的成员,角色是否能自动继承另一个角色的权限?
rolcreaterole bool 角色是否创建更多角色?
rolcreatedb bool 角色是否创建数据库?
rolcanlogin bool 角色是否能登录?
rolreplication bool 角色是一个复制角色,复制角色可以开启复制连接并且创建和删除复制槽。
rolconlimit int4 对于一个可登录的角色,这个设置角色可以发起的最大并发连接数,-1表示无限制
rolpassword text 不是口令(看起来是********)
rolvaliduntil timestamptz 口令失效时间(只用于口令认证),如果永不失效则为空
rolbypassrls bool 绕过每一条行级安全性策略的角色
rolconfig text[] 运行时配置变量的角色特定默认值
oid oid pg_authid.oid 角色的ID
6)pg_rules
名称 类型 引用 描述
schemaname name pg_namespace.nspname 包含表的模式名
tablename name pg_class.relname 规则适用的表名
rulename name pg_rewrite.rulename 规则名
definition text 规则定义
7)pg_settings
名字 类型 描述
name text 运行时配置参数名
setting text 参数的当前值
unit text 参数的隐式单元
category text 参数的逻辑组
short_desc text 参数的简短描述
extra_desc text 附加的参数的详细描述
context text 要求设置此参数值的上下文
vartype text 参数类型( bool 、 enum 、 integer 、 real 或 string )
source text 当前参数值的来源
min_val text 参数的最小允许值(对非数字值为空)
max_val text 参数的最大允许值(对非数字值为空)
enumvals text[] 一个枚举参数的允许值(对非数字值为空)
boot_val text 如果参数没有被别的其他设置,此列为在服务器启动时设定的参数值
reset_val text 在当前会话中, RESET 将会设置的参数值
sourcefile text 当前值被设置的配置文件(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值),在配置文件中使用 include 指令时有用
sourceline integer 当前值被设置的配置文件中的行号(空值表示从非配置文件的其他来源设置,由不是超级用户也不是 pg_read_all_settings 成员的用户检查时也为空值)。
pending_restart boolean 如果配置文件中修改了该值但需要重启,则为 true , 否则为 false 。
8)pg_class
名称 类型 引用 描述
oid oid 行标识符
relname name 表、索引、视图等的名字
relnamespace oid pg_namespace.oid 包含该关系的名字空间的OID
reltype oid pg_type.oid 可能存在的表行类型所对应数据类型的OID(对索引为0,索引没有pg_type项)
reloftype oid pg_type.oid 对于有类型的表,为底层组合类型的OID,对于其他所有关系为0
relowner oid pg_authid.oid 关系的拥有者
relam oid pg_am.oid 如果这是一个表或者索引,表示索引使用的访问方法(堆、B树、哈希等)
relfilenode oid 该关系的磁盘文件的名字,0表示这是一个“映射”关系,其磁盘文件名取决于低层状态
reltablespace oid pg_tablespace.oid 该关系所存储的表空间。如果为0,使用数据库的默认表空间。(如果关系无磁盘文件时无意义)
relpages int4 该表磁盘表示的尺寸,以页面计(页面尺寸为BLCKSZ)。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
reltuples float4 表中的存活行数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
relallvisible int4 在表的可见性映射表中被标记为全可见的页数。这只是一个由规划器使用的估计值。它被VACUUM、ANALYZE以及一些DDL命令(如CREATE INDEX)所更新。
reltoastrelid oid pg_class.oid 与该表相关联的TOAST表的OID,如果没有则为0。TOAST表将大属性“线外”存储在一个二级表中。
relhasindex bool 如果这是一个表并且其上建有(或最近建有)索引则为真
relisshared bool 如果该表在集簇中的所有数据库间共享则为真。只有某些系统目录(如pg_database)是共享的。
relpersistence char p = 永久表,u = 无日志表, t = 临时表
relkind char r = 普通表, i = 索引, S = 序列, t = TOAST表, v = 视图, m = 物化视图, c = 组合类型, f = 外部表, p = 分区表, I = 分区索引
relnatts int2 关系中用户列的数目(系统列不计算在内)。在pg_attribute中必须有这么多对应的项。另请参阅pg_attribute.attnum。
relchecks int2 表上CHECK约束的数目,参见pg_constraint目录
relhasrules bool 如果表有(或曾有)规则则为真,参见 pg_rewrite目录
relhastriggers bool 如果表有(或曾有)触发器则为真,参见 pg_trigger目录
relhassubclass bool 如果表或者索引有(或曾有)任何继承子女则为真
relrowsecurity bool 如果表上启用了行级安全性则为真,参见 pg_policy目录
relforcerowsecurity bool 如果行级安全性(启用时)也适用于表拥有者则为真,参见 pg_policy目录
relispopulated bool 如果表已被填充则为真(对于所有关系该列都为真,但对于某些物化视图却不是)
relreplident char 用来为行形成“replica identity”的列: d = 默认 (主键,如果存在), n = 无, f = 所有列 i = 索引的indisreplident被设置或者为默认
relispartition bool 如果表或索引是一个分区,则为真
relrewrite oid pg_class.oid 对于在要求表重写的DDL操作期间被写入的新关系,这个域包含原始关系的OID,否则为0。那种状态仅在内部可见,对于一个用户可见的关系这个域应该从不包含不是0的值。
relfrozenxid xid 在此之前的所有事务ID在表中已经被替换为一个永久的(“冻结的”) 事务ID。这用于跟踪表是否需要被清理,以便阻止事务ID回卷或者允许pg_xact被收缩。如果该关系不是一个表则为0(InvalidTransactionId)。
relminmxid xid 在此之前的多事务ID在表中已经被替换为一个事务ID。这被用于跟踪表是否需要被清理,以阻止 多事务ID回卷或者允许pg_multixact被收缩。如果关系不是一个表则 为0(InvalidMultiXactId)。
relacl aclitem[] 访问权限,更多信息参见第5.7节
reloptions text[] 访问方法相关的选项,以“keyword=value”字符串形式
relpartbound pg_node_tree 如果表示一个分区(见relispartition),分区边界的内部表达
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




