PostgreSQL 中文参考文档
🌐 英文原版 官方 ↗

52.15. pg_database #

目录 pg_database 存储关于可用数据库的信息。 数据库通过 CREATE DATABASE 命令创建。某些参数的含义详见 Chapter 22。

与大多数系统目录不同,pg_database 在一个集群的所有数据库之间共享:每个集群只有一份 pg_database,而不是每个数据库一份。

Table 52.15. \1 字段列说明

Column Type

Description

oid oid

Row identifier

datname name

Database name

datdba oid (references pg_authid.oid)

数据库的拥有者,通常是创建它的用户

encoding int4

此数据库的字符编码 (pg_encoding_to_char() 可以把该数字翻译为编码名称)

datlocprovider char

此数据库的区域设置提供者:b = 内建,c = libc,i = icu

datistemplate bool

如果为真,则任何拥有 CREATEDB 特权的用户 都可以克隆此数据库; 如果为假,则只有超级用户或该数据库的所有者可以克隆它。

datallowconn bool

如果为假,则任何人都无法连接到该数据库。 这用于保护 template0 数据库不被更改。

dathasloginevt bool

表明已为该数据库定义了登录事件触发器。 此标志用于避免在每个后端启动期间对 pg_event_trigger 表做额外的查找。 该标志由 PostgreSQL 内部使用, 不应手工更改,也不应用于监控目的读取。

datconnlimit int4

设置可以建立到该数据库的最大并发连接数。 -1 表示无限制,-2 表示该数据库无效。

datfrozenxid xid

在该数据库中,此值之前的所有事务 ID 都已被一个永久 (“冻结”)事务 ID 替换。它用于跟踪 该数据库是否需要被清理以防止事务 ID 回卷, 或允许收缩 pg_xact。 它是各表 pg_class.relfrozenxid 值的最小值。

datminmxid xid

在该数据库中,此值之前的所有多事务 ID 都已被一个事务 ID 替换。 它用于跟踪该数据库是否需要被清理以防止多事务 ID 回卷, 或允许收缩 pg_multixact。 它是各表 pg_class.relminmxid 值的最小值。

dattablespace oid (references pg_tablespace.oid)

该数据库的默认表空间。 在该数据库内,所有 pg_class.reltablespace 为零的表都将存储在这个表空间中;特别地, 所有非共享的系统目录都在那里。

datcollate text

此数据库的 LC_COLLATE

datctype text

此数据库的 LC_CTYPE

datlocale text

此数据库提供者相关的区域设置名称。如果提供者是 libc, 则 datlocale 为 NULL; 此时会改用 datcollate 和 datctype。

daticurules text

此数据库的 ICU 排序规则

datcollversion text

排序规则提供者侧的版本。它在数据库被创建时记录, 并在使用时检查,以检测可能导致数据损坏的排序规则定义变更。

datacl aclitem[]

访问特权;详见 Section 5.8