Documentation PostgreSQL 14.22 » Internes » Catalogues système » `pg_database`

Précédent | Niveau supérieur | Suivant
52.14. `pg_conversion` | Sommaire | 52.16. `pg_db_role_setting`

## 52.15. `pg_database`

Le catalogue `pg_database` stocke les informations concernant les bases de données disponibles. Celles-ci sont créées avec la commande `CREATE DATABASE`. Consulter le Chapitre 23 pour les détails sur la signification de certains paramètres.

Contrairement à la plupart des catalogues système, `pg_database` est partagé par toutes les bases de données d'un cluster : il n'y a qu'une seule copie de `pg_database` par cluster, pas une par base.

Tableau 52.15. Colonnes de `pg_database`

Type Description
`oid` `oid` Identifiant de ligne
`datname` `name` Nom de la base de données
`datdba` `oid` (référence `pg_authid`.`oid`) Propriétaire de la base, généralement l'utilisateur qui l'a créée
`encoding` `int4` Encodage de la base de données (la fonction `pg_encoding_to_char()` peut convertir ce nombre en nom de l'encodage)
`datcollate` `name` LC_COLLATE pour cette base de données
`datctype` `name` LC_CTYPE pour cette base de données
`datistemplate` `bool` Si vrai, alors cette base de données peut être clonée par tout utilisateur ayant l'attribut `CREATEDB` ; si faux, seuls les super-utilisateurs et le propriétaire de la base de données peuvent la cloner.
`datallowconn` `bool` Si ce champ est faux, alors personne ne peut se connecter à cette base de données. Ceci est utilisé pour interdire toute modification de la base `template0`.
`datconnlimit` `int4` Nombre maximum de connexions concurrentes autorisées sur la base de données. -1 indique l'absence de limite.
`datlastsysoid` `oid` Dernier OID système de la base de données ; utile en particulier pour pg_dump.
`datfrozenxid` `xid` Tous les ID de transaction avant celui-ci ont été remplacés par un ID de transaction permanent (« frozen »). Ceci est utilisé pour déterminer si la table doit être nettoyée (VACUUM) pour éviter un bouclage des ID de transaction (ID wraparound) ou pour compacter `pg_xact`. C'est la valeur minimale des valeurs par table de `pg_class`.`relfrozenxid`.
`datminmxid` `xid` Tous les identifiants MultiXact avant celui-i ont été remplacés par un identifiant de transaction dans cette table. Ceci est utilisé pour tracer si la base de données a besoin d'être traitée par le VACUUM pour empêcher un bouclage des identifiants MultiXact ou pour permettre à `pg_multixact` d'être réduit. Il s'agit aussi de la valeur minimale des valeurs de `pg_class`.`relminmxid` pour chaque table.
`dattablespace` `oid` (référence `pg_tablespace`.`oid`) Le tablespace par défaut de la base de données. Dans cette base de données, toutes les tables pour lesquelles `pg_class`.`reltablespace` vaut zéro sont stockées dans celui-ci ; en particulier, tous les catalogues système non partagés s'y trouvent.
`datacl` `aclitem[]` Droits d'accès ; voir Section 5.7 pour les détails.