Skip to content

53.15.pg_database#

目录pg_database存储有关可用数据库的信息。使用CREATE DATABASE命令创建数据库。有关某些参数含义的详细信息,请参阅第 23 章

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

表 53.15.pg_database

列类型

描述

oid oid

行标识符

datname name

数据库名称

datdba oid (引用 pg_authid.oid)

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

encoding int4

此数据库的字符编码(pg_encoding_to_char() 可以将此数字转换为编码名称)

datlocprovider char

此数据库的区域设置提供程序:c = libc,i = icu

datistemplate bool

如果为 true,则任何具有 CREATEDB 权限的用户都可以克隆此数据库;如果为 false,则只有超级用户或数据库所有者才能克隆它。

datallowconn 布尔值

如果为 false,则没有人可以连接到此数据库。这用于保护 template0 数据库不被更改。

datconnlimit int4

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

datfrozenxid xid

在此数据库中,此事务 ID 之前的所有事务 ID 已被永久 (冻结) 事务 ID 替换。这用于跟踪是否需要对数据库进行 VACUUM 以防止事务 ID 环绕或允许缩小 pg_xact。它是每个表 pg_class.relfrozenxid 值的最小值。

datminmxid xid

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

dattablespace oid(引用 pg_tablespace.oid

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

datcollate 文本

此数据库的 LC_COLLATE

datctype 文本

此数据库的 LC_CTYPE

daticulocale 文本

此数据库的 ICU 地区设置 ID

daticurules 文本

此数据库的 ICU 校对规则

datcollversion 文本

校对的供应商特定版本。在创建数据库时记录此版本,然后在使用数据库时检查此版本,以检测校对定义中的更改,这些更改可能导致数据损坏。

datacl aclitem[]

访问权限;有关详细信息,请参见 第 5.7 节