跳转到主要内容
← 目录图谱 / pg_database

SYSTEM CATALOG · 系统目录

pg_database

The catalog pg_database stores information about the available databases. Databases are created with the CREATE DATABASE command. Consult Chapter 22 for details about the meaning of some of the parameters. Unlike most system catalogs, pg_database is shared across all databases of a cluster: there is only one copy of pg_database per cluster, not one per database.

首次收录 PG 9.0最近收录 PG 19当前字段 18

已与 PostgreSQL 18.6 实例逐字段核对 · 原始实测记录 ↗

字段结构 PostgreSQL 18

pg_database
字段 / COLUMN类型 / TYPE说明 / DESCRIPTION
oid oidNOT NULL Row identifier
datname nameNOT NULL Database name
datdba oidNOT NULL Owner of the database, usually the user who created it引用:pg_authid.oid
encoding integerNOT NULL文档原写法:int4 Character encoding for this database (pg_encoding_to_char() can translate this number to the encoding name)
datlocprovider "char"NOT NULL文档原写法:char Locale provider for this database: b = builtin, c = libc, i = icu
datistemplate booleanNOT NULL文档原写法:bool 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.
datallowconn booleanNOT NULL文档原写法:bool If false then no one can connect to this database. This is used to protect the template0 database from being altered.
dathasloginevt booleanNOT NULL文档原写法:bool Indicates that there are login event triggers defined for this database. This flag is used to avoid extra lookups on the pg_event_trigger table during each backend startup. This flag is used internally by PostgreSQL and should not be manually altered or read for monitoring purposes.
datconnlimit integerNOT NULL文档原写法:int4 Sets maximum number of concurrent connections that can be made to this database. -1 means no limit, -2 indicates the database is invalid.
datfrozenxid xidNOT NULL 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.
datminmxid xidNOT NULL All multixact IDs before this one have been replaced with a transaction ID in this database. This is used to track whether the database needs to be vacuumed in order to prevent multixact ID wraparound or to allow pg_multixact to be shrunk. It is the minimum of the per-table pg_class.relminmxid values.
dattablespace oidNOT NULL The default tablespace for the database. Within this database, all tables for which pg_class.reltablespace is zero will be stored in this tablespace; in particular, all the non-shared system catalogs will be there.引用:pg_tablespace.oid
datcollate textNOT NULL LC_COLLATE for this database
datctype textNOT NULL LC_CTYPE for this database
datlocale text Collation provider locale name for this database. If the provider is libc, datlocale is NULL; datcollate and datctype are used instead.
daticurules text ICU collation rules for this database
datcollversion text Provider-specific version of the collation. This is recorded when the database is created and then checked when it is used, to detect changes in the collation definition that could lead to data corruption.
datacl aclitem[] Access privileges; see Section 5.8 for details

标记“隐式列”的字段不包含在 SELECT * 中;部分早期统计视图由同版本源码补全,额外来源会显示在字段说明中。

通用系统列 6

PostgreSQL 提供的系统属性,通常不在 SELECT * 中展开。单独保留,不与普通字段混算。

字段类型attnum
tableoidoid-6
cmaxcid-5
xmaxxid-4
cmincid-3
xminxid-2
ctidtid-1

字段演化矩阵

悬停查看字段类型
存在新增 / 类型或属性变化移除
字段 / COLUMN9.09.19.29.39.49.59.610111213141516171819
oid
datname
datdba
encoding
datcollate
datctype
datistemplate
datallowconn
datconnlimit
datlastsysoid
datfrozenxid
dattablespace
datacl
datminmxid
datlocprovider
daticulocale
datcollversion
daticurules
dathasloginevt
datlocale

9.0 是收录基线;基线中已存在的字段不标记为新增。矩阵按字段名称对齐,重命名显示为旧字段移除与新字段新增。

演化时间线

相邻大版本的变化

PostgreSQL 19 ← 18

2 处字段说明更新

PostgreSQL 17 ← 16

+ dathasloginevt+ datlocale− daticulocale2 处字段说明更新目录说明更新

PostgreSQL 16 ← 15

+ daticurules

PostgreSQL 15 ← 14

+ datlocprovider+ daticulocale+ datcollversion− datlastsysoid~ datcollate: name → text~ datctype: name → text↕ 字段顺序变化

PostgreSQL 14 ← 13

目录说明更新

PostgreSQL 12 ← 11

~ oid: 隐式列 → 常规列2 处字段说明更新

PostgreSQL 11 ← 10

1 处字段说明更新

PostgreSQL 10 ← 9.6

1 处字段说明更新

PostgreSQL 9.6 ← 9.5

目录说明更新

PostgreSQL 9.4 ← 9.3

1 处字段说明更新

PostgreSQL 9.3 ← 9.2

+ datminmxid1 处字段说明更新

比较任意两个版本

选择两个版本,查看字段的新增、移除与类型变化。交互比较需要 JavaScript;演化时间线可直接阅读。