选择 打开 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

文档 / 系统目录 / 系统目录表

SYSTEM CATALOG系统目录表

pg_database

本数据库集簇中的数据库

系统目录表 引入 9.0(基线) 现存至 20 devel 5 次结构变更

关系 OID
1262
关系类型
r(普通表) · 全局共享
字段数
18
引入版本
9.0(收录基线)
版本状态
当前稳定版
结构变更
5 次

PostgreSQL 18 手册 官方文档 源码定义

版本轨迹

相对 PostgreSQL 17 无变化。

目录pg_database存储有关可用数据库的信息。 数据库通过CREATE DATABASE命令创建。 更多关于其参数的信息请查阅Chapter 22。

和大部分系统目录不同,pg_database是在集簇的所有数据库之间共享的:在一个集簇中只有一份pg_database拷贝,而不是每个数据库一份。

字段

PostgreSQL 18 的 18 个字段,按定义顺序排列。说明默认用本站手册的译文,没有译文的按英文原文显示。

字段 类型 说明
oid oidNOT NULL 行标识符
datname nameNOT NULL 数据库名称
datdba oidNOT NULL pg_authid.oid 数据库的拥有者,通常是创建它的用户
encoding integerNOT NULL 数据库的字符编码 (pg_encoding_to_char()可以将这个数字翻译为编码名称)
datlocprovider "char"NOT NULL 此数据库的区域设置提供者:b = builtin, c = libc,i = icu
datistemplate booleanNOT NULL 如果为真,则此数据库可被任何具有CREATEDB权限的用户克隆; 如果为假,则只有超级用户或者该数据库的属主能够克隆它。
datallowconn booleanNOT NULL 如果为假则没有人能连接到这个数据库。这可以用来保护template0数据库不被修改。
dathasloginevt booleanNOT NULL 如果此数据库定义了登录事件触发器,则为真。 使用这个标志是为了避免每个后端启动时都额外查看 pg_event_trigger。 该标志仅供 PostgreSQL 内部使用,不应为了监控目的手工修改或读取。
datconnlimit integerNOT NULL 设置可以连接到此数据库的最大并发连接数。-1表示没有限制,-2表示数据库无效。
datfrozenxid xidNOT NULL 在此事务 ID 之前的所有事务 ID,都已经在该数据库中被替换为永久的(“冻结的”)事务 ID。 它用于跟踪数据库是否需要清理,以防止事务 ID 回卷,或者允许pg_xact收缩。 它等于该数据库中所有表的pg_class.relfrozenxid值的最小值。
datminmxid xidNOT NULL 在此多事务 ID 之前的所有多事务 ID,都已经在该数据库中被替换为事务 ID。 它用于跟踪数据库是否需要清理,以防止多事务 ID 回卷,或者允许pg_multixact收缩。 它等于该数据库中所有表的pg_class.relminmxid值的最小值。
dattablespace oidNOT NULL pg_tablespace.oid 此数据库的默认表空间。 在此数据库中,所有pg_class.reltablespace为0的表都将被存储在这个表空间中;尤其是非共享系统目录都会在其中。
datcollate textNOT NULL 此数据库的LC_COLLATE
datctype textNOT NULL 此数据库的LC_CTYPE
datlocale text 此数据库的提供者区域设置名称。如果提供者是 libc, 则 datlocale 为 NULL; 改用 datcollate 和 datctype。
daticurules text 本数据库的 ICU 排序规则
datcollversion text 该排序规则的提供者特定版本。它会在创建数据库时记录下来,并在使用时接受检查,以检测可能导致数据损坏的排序规则定义更改。
datacl aclitem[] 访问权限,更多信息参见Section 5.8

演化历史

相邻两个大版本之间的差异,新的在前。版本号链到该版的字段表。

  1. PostgreSQL 19 ← 18 仅描述更新

    2 处描述更新
    • datacl Access privileges; see Section 5.8 for details Access privileges; see Section 5.9 for details
    • datcollate LC_COLLATE for this database LC_COLLATE for this database (ignored unless datlocprovider is c)
  2. PostgreSQL 17 ← 16 结构变更

    dathasloginevtdatlocale daticulocale 关系说明更新

    2 处描述更新
    • datacl Access privileges; see Section 5.7 for details Access privileges; see Section 5.8 for details
    • datlocprovider Locale provider for this database: c = libc, i = icu Locale provider for this database: b = builtin, c = libc, i = icu
  3. PostgreSQL 16 ← 15 结构变更

    daticurules

  4. PostgreSQL 15 ← 14 结构变更

    datlocproviderdaticulocaledatcollversion datlastsysoid datcollate:name → textdatctype:name → text 字段顺序调整

  5. PostgreSQL 14 ← 13 仅描述更新

    关系说明更新

  6. PostgreSQL 12 ← 11 结构变更

    oid:隐式列 → 常规列

    2 处描述更新
    • datacl Access privileges; see GRANT and REVOKE for details Access privileges; see Section 5.7 for details
    • oid Row identifier (hidden attribute; must be explicitly selected) Row identifier
  7. PostgreSQL 11 ← 10 仅描述更新

    1 处描述更新
    • datconnlimit Sets maximum number of concurrent connections that can be made to this database. -1 means no limit. Sets maximum number of concurrent connections that can be made to this database. -1 means no limit, -2 indicates the database is invalid.
  8. PostgreSQL 10 ← 9.6 仅描述更新

    1 处描述更新
    • datfrozenxid All transaction IDs before this one have been replaced with a permanent ("frozen") transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_clog to be shrunk. It is the minimum of the per-table pg_class.relfrozenxid values. All transaction IDs before this one have been replaced with a permanent (“frozen”) transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent transaction ID wraparound or to allow pg_xact to be shrunk. It is the minimum of the per-table pg_class.relfrozenxid values.
  9. PostgreSQL 9.6 ← 9.5 仅描述更新

    关系说明更新

  10. PostgreSQL 9.4 ← 9.3 仅描述更新

    1 处描述更新
    • datistemplate If true then this database can be used in the TEMPLATE clause of CREATE DATABASE to create a new database as a clone of this one If true, then this database can be cloned by any user with CREATEDB privileges; if false, then only superusers or the owner of the database can clone it.
  11. PostgreSQL 9.3 ← 9.2 结构变更

    datminmxid

    1 处描述更新
    • oid Row identifier (hidden system attribute; explicitly select oid). Row identifier (hidden attribute; must be explicitly selected)

字段矩阵

每个字段在 18 个收录版本里的存在情况;方格指向该版的字段表。「有变」指类型、可空、隐式或数组维数与上一版不同。

存在 有变 已移除 不存在

字段 9.09.19.29.39.49.59.61011121314151617181920
oid 存在 存在 存在 存在 存在 存在 存在 存在 存在 有变 存在 存在 存在 存在 存在 存在 存在 存在
datname 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datdba 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
encoding 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datcollate 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 有变 存在 存在 存在 存在 存在
datctype 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 有变 存在 存在 存在 存在 存在
datistemplate 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datallowconn 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datconnlimit 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datlastsysoid 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 已移除 不存在 不存在 不存在 不存在 不存在
datfrozenxid 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
dattablespace 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datacl 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datminmxid 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在 存在
datlocprovider 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在
daticulocale 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 已移除 不存在 不存在 不存在
datcollversion 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在 存在
daticurules 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在 存在
dathasloginevt 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在
datlocale 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 不存在 存在 存在 存在 存在

系统列

每张表都有的 6 个系统列
  • tableoidoid-6
  • cmaxcid-5
  • xmaxxid-4
  • cmincid-3
  • xminxid-2
  • ctidtid-1

同类关系

关系 引入 字段 版本变动 最近变更
SYSTEM CATALOG 系统目录表 70 个
pg_aggregate 9.0基线 22 113 次
聚合函数 现存
pg_am 9.0基线 4 124 次
关系访问方法 现存
pg_amop 9.0基线 9 122 次
访问方法操作符 现存
pg_amproc 9.0基线 6 121 次
访问方法支持函数 现存
pg_attrdef 9.0基线 4 122 次
列默认值 现存
pg_attribute 9.0基线 25 189 次
表列(“属性”) 现存
pg_auth_members 9.0基线 7 161 次
授权标识符成员关系 现存
pg_authid 9.0基线 12 123 次
授权标识符(角色) 现存
pg_cast 9.0基线 6 121 次
转换(数据类型转换) 现存
pg_class 9.0基线 34 189 次
表、索引、序列、视图 (“关系”) 现存
pg_collation 9.1 12 175 次
排序规则(区域设置信息) 现存
pg_constraint 9.0基线 28 187 次
检查约束、唯一约束、主键约束、外键约束 现存
pg_conversion 9.0基线 8 121 次
编码转换信息 现存
pg_database 9.0基线 18 175 次
本数据库集簇中的数据库 现存
pg_db_role_setting 9.0基线 3
每角色和每数据库的设置 现存
pg_default_acl 9.0基线 5 121 次
对象类型的默认权限 现存
pg_depend 9.0基线 7
数据库对象间的依赖 现存
pg_description 9.0基线 4 9.51 次
数据库对象上的描述或注释 现存
pg_enum 9.0基线 4 122 次
枚举标签和值定义 现存
pg_event_trigger 9.3 7 121 次
事件触发器 现存
pg_extension 9.1 8 122 次
已安装扩展 现存
pg_foreign_data_wrapper 9.0基线 8 193 次
外部数据包装器定义 现存
pg_foreign_server 9.0基线 8 121 次
外部服务器定义 现存
pg_foreign_table 9.1 3
外部表信息 现存
pg_index 9.0基线 21 155 次
索引信息 现存
pg_inherits 9.0基线 4 141 次
表继承层次 现存
pg_init_privs 9.6 5
对象初始权限 现存
pg_language 9.0基线 9 121 次
编写函数的语言 现存
pg_largeobject 9.0基线 3 9.51 次
大对象的数据页 现存
pg_largeobject_metadata 9.0基线 3 121 次
大对象的元数据 现存
pg_namespace 9.0基线 4 121 次
模式 现存
pg_opclass 9.0基线 9 121 次
访问方法操作符类 现存
pg_operator 9.0基线 15 121 次
操作符 现存
pg_opfamily 9.0基线 5 121 次
访问方法操作符族 现存
pg_parameter_acl 15 3
已授予权限的配置参数 现存
pg_partitioned_table 10 8 111 次
表的分区键的信息 现存
pg_pltemplate 9.0基线 8 9.51 次
过程语言的模板数据 于 13 移除
pg_policy 9.5 8 122 次
行安全策略 现存
pg_proc 9.0基线 30 147 次
函数和过程 现存
pg_propgraph_element 19 14
属性图元素(顶点和边) 于 20 移除
pg_propgraph_element_label 19 3
属性图中元素与标签之间的链接 于 20 移除
pg_propgraph_label 19 3
属性图标签 于 20 移除
pg_propgraph_label_property 19 4
属性图中按标签区分的属性定义 于 20 移除
pg_propgraph_property 19 6
属性图属性 于 20 移除
pg_publication 10 11 195 次
用于逻辑复制的发布 现存
pg_publication_namespace 15 3
模式到发布映射 现存
pg_publication_rel 10 6 193 次
关系与发布的映射 现存
pg_range 9.2 12 192 次
范围类型的信息 现存
pg_replication_origin 9.5 2
已注册的复制源 现存
pg_rewrite 9.0基线 8 123 次
查询重写规则 现存
pg_seclabel 9.1 5 9.51 次
数据库对象上的安全标签 现存
pg_sequence 10 8
有关序列的信息 现存
pg_shdepend 9.0基线 7
共享对象上的依赖 现存
pg_shdescription 9.0基线 3 9.51 次
共享对象上的注释 现存
pg_shseclabel 9.2 4 9.51 次
共享数据库对象上的安全标签 现存
pg_statistic 9.0基线 31 122 次
规划器统计 现存
pg_statistic_ext 10 9 174 次
扩展的规划器统计信息(定义) 现存
pg_statistic_ext_data 12 6 152 次
扩展的规划器统计信息(已构建的统计信息) 现存
pg_subscription 10 23 197 次
逻辑复制订阅 现存
pg_subscription_rel 10 4 131 次
订阅的关系状态 现存
pg_tablespace 9.0基线 5 122 次
本数据库集簇内的表空间 现存
pg_transform 9.5 5 121 次
转换(将数据类型转换为过程语言需要的形式) 现存
pg_trigger 9.0基线 19 135 次
触发器 现存
pg_ts_config 9.0基线 5 121 次
文本搜索配置 现存
pg_ts_config_map 9.0基线 4
文本搜索配置的词元映射 现存
pg_ts_dict 9.0基线 6 121 次
文本搜索字典 现存
pg_ts_parser 9.0基线 8 121 次
文本搜索分析器 现存
pg_ts_template 9.0基线 5 121 次
文本搜索模板 现存
pg_type 9.0基线 32 144 次
数据类型 现存
pg_user_mapping 9.0基线 4 121 次
将用户映射到外部服务器 现存