52.15. pg_database

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

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

表 52.15. pg_database

NameTypeReferencesDescription
oidoid 行标识符(隐藏属性;必须显式选择)
datnamename Database name
datdbaoidpg_authid.oid数据库的所有者,通常是创建数据库的用户
encodingint4 此数据库的字符编码(pg_encoding_to_char()可以将此数字转换为编码名称)
datcollatename 该数据库的 LC_COLLATE
datctypename 此数据库的 LC_CTYPE
datistemplatebool 如果为 true,则任何具有CREATEDB特权的用户都可以克隆此数据库;如果为 false,则只有超级用户或数据库所有者才能克隆它。
datallowconnbool 如果为 false,则没有人可以连接到该数据库。这用于防止template0数据库被更改。
datconnlimitint4 设置可以与此数据库构建的最大并发连接数。 -1 表示没有限制。
datlastsysoidoid 数据库中的最后一个系统 OID;对 pg_dump 特别有用
datfrozenxidxid 此数据库之前,所有之前的 TransactionID 已被永久(“冻结”)TransactionID 取代。这用于跟踪是否需要清理数据库以防止事务 ID 环绕或允许pg_xact收缩。它是每个表pg_class的最小值。 relfrozenxid个值。
datminmxidxid 此数据库之前的所有多重 ID 已替换为事务 ID。这用于跟踪是否需要清理数据库以防止多重 ID 环绕或使pg_multixact收缩。它是每个表pg_class的最小值。 relminmxid个值。
dattablespaceoidpg_tablespace.oid数据库的默认表空间。在此数据库中,包含pg_class的所有表。 reltablespace为零将存储在此表空间中;特别是,所有非共享系统目录都将存在。
dataclaclitem[] 访问权限;有关详情,请参见GRANTREVOKE