↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

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

百科 / 系统目录 / 系统目录表

SYSTEM CATALOG系统目录表

pg_database

本数据库集簇中的数据库

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

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

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

版本轨迹

相对 PostgreSQL 17 无变化。

目录 pg_database 存储有关可用数据库的信息。数据库通过 CREATE DATABASE 命令创建。关于其中一些参数的含义的详细信息请查阅第 22 章。

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

字段

PostgreSQL 18.7 的 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[] 访问权限,更多信息参见第 5.8 节

演化历史

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

  1. PostgreSQL 19 ← 18 仅描述更新

    1 处描述更新
    • datacl Access privileges; see Section 5.8 for details Access privileges; see Section 5.9 for details
  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)
  12. PostgreSQL 9.0 ← 8.4 结构变更

    oid datconfig

  13. PostgreSQL 8.4 ← 8.3 结构变更

    datcollatedatctype

  14. PostgreSQL 8.2 ← 8.1 结构变更

    datvacuumxid

  15. PostgreSQL 8.1 ← 8.0 结构变更

    datconnlimit datdba:int4 → oid

  16. PostgreSQL 8.0 ← 7.4 结构变更

    dattablespace datpath

字段矩阵

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

存在 有变 已移除 不存在

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

系统列

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

同类关系

关系 引入 字段 版本变动 最近变更
SYSTEM CATALOG 系统目录表 67 个 ↗
pg_aggregate 7.4基线 22 114 次
聚合函数 现存
pg_am 7.4基线 4 129 次
关系访问方法 现存
pg_amop 7.4基线 9 126 次
访问方法操作符 现存
pg_amproc 7.4基线 6 124 次
访问方法支持函数 现存
pg_attrdef 7.4基线 4 123 次
列默认值 现存
pg_attribute 7.4基线 25 1812 次
表列(“属性”) 现存
pg_auth_members 8.1 7 161 次
授权标识符成员关系 现存
pg_authid 8.1 12 124 次
授权标识符(角色) 现存
pg_autovacuum 8.1 10 8.21 次
目录pg_autovacuum存放自动清理守护进程的可选逐关系配置参数。如果某个特定关系在这里有条目,则给定的参数将用于对该表做自动清理。如果没有条目,将使用系统范围的默认值。关于自动清理守护进程的更多信息,见第 23.1.4 节。 于 8.4 移除
pg_cast 7.4基线 6 123 次
转换(数据类型转换) 现存
pg_class 7.4基线 34 1814 次
表、索引、序列、视图(“关系”) 现存
pg_collation 9.1 12 175 次
排序规则(区域设置信息) 现存
pg_constraint 7.4基线 28 1810 次
检查约束、唯一约束、主键约束、外键约束 现存
pg_conversion 7.4基线 8 123 次
编码转换信息 现存
pg_database 7.4基线 18 1710 次
本数据库集簇中的数据库 现存
pg_db_role_setting 9.0 3 —
每角色和每数据库的设置 现存
pg_default_acl 9.0 5 121 次
对象类型的默认权限 现存
pg_depend 7.4基线 7 —
数据库对象间的依赖 现存
pg_description 7.4基线 4 9.51 次
数据库对象上的描述或注释 现存
pg_enum 8.3 4 123 次
枚举标签和值定义 现存
pg_event_trigger 9.3 7 121 次
事件触发器 现存
pg_extension 9.1 8 122 次
已安装扩展 现存
pg_foreign_data_wrapper 8.4 8 194 次
外部数据包装器定义 现存
pg_foreign_server 8.4 8 122 次
外部服务器定义 现存
pg_foreign_table 9.1 3 —
外部表的补充信息 现存
pg_index 7.4基线 21 159 次
索引的补充信息 现存
pg_inherits 7.4基线 4 141 次
表继承层次 现存
pg_init_privs 9.6 5 —
对象初始权限 现存
pg_language 7.4基线 9 123 次
编写函数的语言 现存
pg_largeobject 7.4基线 3 9.51 次
大对象的数据页 现存
pg_largeobject_metadata 9.0 3 121 次
大对象的元数据 现存
pg_listener 7.4基线 3 —
目录 pg_listener 支持LISTEN和NOTIFY命令。监听者为自己正在监听的每个通知名称在 pg_listener 中创建一个条目。通知者会扫描 pg_listener 并更新每个匹配的条目,以表明发生了一个通知。通知者还会(使用表中记录的 PID)发送信号,把监听者从睡眠中唤醒。 于 9.0 移除
pg_namespace 7.4基线 4 123 次
模式 现存
pg_opclass 7.4基线 9 124 次
访问方法操作符类 现存
pg_operator 7.4基线 15 124 次
操作符 现存
pg_opfamily 8.3 5 122 次
访问方法操作符族 现存
pg_parameter_acl 15 3 —
已授予权限的配置参数 现存
pg_partitioned_table 10 8 111 次
表的分区键的信息 现存
pg_pltemplate 8.1 8 9.53 次
过程语言的模板数据 于 13 移除
pg_policy 9.5 8 122 次
行安全性策略 现存
pg_proc 7.4基线 30 1412 次
函数和过程 现存
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 7.4基线 8 125 次
查询重写规则 现存
pg_seclabel 9.1 5 9.51 次
数据库对象上的安全标签 现存
pg_sequence 10 8 —
有关序列的信息 现存
pg_shdepend 8.1 7 8.41 次
共享对象上的依赖 现存
pg_shdescription 8.2 3 9.51 次
共享对象上的注释 现存
pg_shseclabel 9.2 4 9.51 次
共享数据库对象上的安全标签 现存
pg_statistic 7.4基线 31 123 次
规划器统计信息 现存
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 8.0 5 124 次
本数据库集簇内的表空间 现存
pg_transform 9.5 5 121 次
转换(将数据类型转换为过程语言需要的形式) 现存
pg_trigger 7.4基线 19 137 次
触发器 现存
pg_ts_config 8.3 5 122 次
文本检索配置 现存
pg_ts_config_map 8.3 4 —
文本检索配置的词元映射 现存
pg_ts_dict 8.3 6 122 次
文本检索词典 现存
pg_ts_parser 8.3 8 122 次
文本检索解析器 现存
pg_ts_template 8.3 5 122 次
文本检索模板 现存
pg_type 7.4基线 32 149 次
数据类型 现存
pg_user_mapping 8.4 4 122 次
用户到外部服务器的映射 现存