52.15. pg_database
В каталоге pg_database
хранится информация о доступных базах данных. Базы данных создаются командой CREATE DATABASE. Подробнее о предназначении некоторых свойств баз можно узнать в Главе 22.
В отличие от большинства системных каталогов, pg_database
разделяется всеми базами данных кластера: есть только один экземпляр pg_database
в кластере, а не отдельные в каждой базе данных.
Таблица 52.15. Столбцы pg_database
Имя | Тип | Ссылки | Описание |
---|---|---|---|
oid | oid | Идентификатор строки (скрытый атрибут; должен выбираться явно) | |
datname | name | Имя базы данных | |
datdba | oid |
| Владелец базы данных, обычно пользователь, создавший её |
encoding | int4 | Кодировка символов для этой базы данных (pg_encoding_to_char() может преобразовать этот номер в имя кодировки) | |
datcollate | name | LC_COLLATE для этой базы данных | |
datctype | name | LC_CTYPE для этой базы данных | |
datistemplate | bool | Если true, базу данных сможет клонировать любой пользователь с правами CREATEDB ; в противном случае клонировать эту базу смогут только суперпользователи и её владелец. | |
datallowconn | bool | Если false, никто не сможет подключаться к этой базе данных. Это позволяет защитить базу данных template0 от модификаций. | |
datconnlimit | int4 | Задаёт максимально допустимое число одновременных подключений к этой базе данных. С -1 ограничения нет, с -2 к базе данных нельзя подключаться. | |
datlastsysoid | oid | Последний системный OID в базе данных; в частности, полезен для pg_dump | |
datfrozenxid | xid | Все идентификаторы транзакций, предшествующие данному, в этой базе данных заменены постоянным («замороженным») идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов или для сокращения объёма pg_xact . Это значение вычисляется как минимум значений pg_class .relfrozenxid для всех таблиц. | |
datminmxid | xid | Идентификаторы мультитранзакций, предшествующие данному, в этой базе данных заменены другим идентификатором транзакции. Это нужно для определения, когда требуется очищать базу данных для предотвращения зацикливания идентификаторов мультитранзакций или для сокращения объёма pg_multixact . Это значение вычисляется как минимум значений pg_class .relminmxid для всех таблиц. | |
dattablespace | oid |
| Табличное пространство по умолчанию для данной базы данных. Если таблица базы находится в этом пространстве, для неё значение pg_class .reltablespace будет нулевым; в частности, в нём окажутся все частные системные каталоги этой базы. |
datacl | aclitem[] | Права доступа; за подробностями обратитесь к описанию GRANT и REVOKE |