系统表是关系型数据库存放结构元数据的地方, 比如表和字段,以及内部登记信息等。 PostgreSQL 的系统表就是普通表。 你可以删除然后重建这些表,增加列,插入和更新数值, 然后彻底把你的系统搞垮。 我们不应该手工修改系统表,通常总有 SQL 命令可以做这些事情。 (比如,CREATE DATABASE 向 pg_database 表插入一行 --- 并且实际上 在磁盘上创建该数据库。) 有几种特别深奥的操作例外,比如增加索引访问方法。
Table 43-1 列出了系统表。 每个表更详细的文档在后面。
大多数系统表都是在数据库创建的过程中从模版数据库中拷贝过来的, 因此都是数据库相关的。少数表是在整个安装中物理上所有数据库共享的; 这些表在独立的表的描述中用标记标出来了。
Table 43-1. 系统表
表名字 | 表用途 |
---|---|
pg_aggregate | 聚集函数 |
pg_am | 索引访问方法 |
pg_amop | 访问方法操作符 |
pg_amproc | 访问方法支持过程 |
pg_attrdef | 字段缺省值 |
pg_attribute | 表的列("属性","字段") |
pg_cast | 转换(数据类型转换) |
pg_class | 表,索引,序列("关系") |
pg_constraint | 检查约束,唯一约束,主键约束,外键约束 |
pg_conversion | 编码转换信息 |
pg_database | 本集群内的数据库 |
pg_depend | 数据库对象之间的依赖性 |
pg_description | 数据库对象的描述或注释 |
pg_group | 数据库用户的组 |
pg_index | 附加的索引信息 |
pg_inherits | 表继承层次 |
pg_language | 用于写函数的语言 |
pg_largeobject | 大对象 |
pg_listener | 异步通知 |
pg_namespace | 模式 |
pg_opclass | 索引访问方法操作符表 |
pg_operator | 操作符 |
pg_proc | 函数和过程 |
pg_rewrite | 查询重写规则 |
pg_shadow | 数据库用户 |
pg_statistic | 优化器统计 |
pg_trigger | 触发器 |
pg_type | 数据类型 |