Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17

51.15. pg_database #

目录 pg_database 存储有关可用数据库的信息。可以使用 CREATE DATABASE 命令创建数据库。有关部分参数含义的详细信息,请参阅 章节 22

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

表 51.15. pg_database

列类型

说明

oid oid

行标识符

datname name

数据库名称

datdba oid(引用 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。这用于跟踪数据库是否需要进行真空以防止事务 ID 折返或允许缩小 pg_xact。它是每个表的最小值 pg_class.relfrozenxid 值。

datminmxid xid

在此之前的所有 multixact ID 都已在这个数据库中被事务 ID 替换。这用于跟踪是否需要对数据库进行真空操作,以防止 multixact ID 环绕或允许 pg_multixact 收缩。<它是每个表 pg_class.relminmxid 值的最小值。

dattablespace oid (引用 pg_tablespace.oid)

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

datcollate text

此数据库的 LC_COLLATE

datctype text

此数据库的 LC_CTYPE

datlocale text

此数据库的排序规则提供者区域设置名称。如果提供者是 libc,则 datlocaleNULL;将使用 datcollatedatctype

daticurules text

此数据库的 ICU 排序规则

datcollversion text

排序规则的供应商特定版本。在创建数据库时记录此信息,然后在使用它时检查此信息,以检测可能会导致数据损坏的排序规则定义中的更改。

datacl aclitem[]

访问权限;详情请参阅 第 5.8 节