PostgreSQL 19 ← 18
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.
已与 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 |
|---|---|---|
tableoid | oid | -6 |
cmax | cid | -5 |
xmax | xid | -4 |
cmin | cid | -3 |
xmin | xid | -2 |
ctid | tid | -1 |
字段演化矩阵
悬停查看字段类型9.0 是收录基线;基线中已存在的字段不标记为新增。矩阵按字段名称对齐,重命名显示为旧字段移除与新字段新增。
演化时间线
相邻大版本的变化PostgreSQL 17 ← 16
PostgreSQL 16 ← 15
PostgreSQL 15 ← 14
PostgreSQL 14 ← 13
PostgreSQL 12 ← 11
PostgreSQL 11 ← 10
PostgreSQL 10 ← 9.6
PostgreSQL 9.6 ← 9.5
PostgreSQL 9.4 ← 9.3
PostgreSQL 9.3 ← 9.2
比较任意两个版本
选择两个版本,查看字段的新增、移除与类型变化。交互比较需要 JavaScript;演化时间线可直接阅读。