pg_database

PostgreSQL 9.4.4 中文手册
上一页 | 上一级 | 章 48. 系统表 | 下一页

# 48.15. `pg_database`

`pg_database`表存储关于可用数据库的信息。数据库是用 CREATE DATABASE创建的。参考第 21 章 获取一些参数的详细含义。

和大多数系统表不同，`pg_database`是在一个集群里的所有数据库共享的： 每个集群只有一份`pg_database`拷贝，而不是每个数据库一份。

表 48-15. `pg_database` 字段

名字 | 类型 | 引用 | 描述
--- | --- | --- | ---
`oid` | `oid` |  | 行标识符(隐藏属性; 必须明确选择)
`datname` | `name` |  | 数据库名字
`datdba` | `oid` | ``pg_authid`.oid` | 数据库所有人，通常为其创建者
`encoding` | `int4` |  | 数据库的字符编码方式(`pg_encoding_to_char()` 能够将这个数字转换为相应的编码名称)
`datcollate` | `name` |  | 这个数据库的LC_COLLATE
`datctype` | `name` |  | 这个数据库的LC_CTYPE
`datistemplate` | `bool` |  | 如果为真，则此数据库可以通过任何用户的`CREATEDB` 权限克隆；如果为假，那么只有超级用户或者该数据库的所有者可以克隆它。
`datallowconn` | `bool` |  | 如果为假则没有人可以连接到这个数据库。这个字段用于保护`template0`数据库不被更改。
`datconnlimit` | `int4` |  | 设置该数据库上允许的最大并发连接数，-1 表示无限制。
`datlastsysoid` | `oid` |  | 数据库里最后一个系统 OID ；对pg_dump特别有用。
`datfrozenxid` | `xid` |  | 该数据库中中所有在这个之前的事务 ID 已经被一个固定的("frozen") 事务 ID 替换。这用于跟踪该数据库是否需要为了防止事务 ID 重叠或者允许收缩 `pg_clog`而进行清理。它是针对每个表的`pg_class`.`relfrozenxid` 中的最小值。
`datminmxid` | `xid` |  | 该数据库中中所有在这个之前的 multixact ID 已经被一个事务 ID 替换。 这用于跟踪该数据库是否需要为了防止 multixact ID 重叠或者允许收缩 `pg_multixact`而进行清理。它是针对每个表的`pg_class`.`relfrozenxid` 中的最小值。
`dattablespace` | `oid` | ``pg_tablespace`.oid` | 该数据库的缺省表空间。在这个数据库里，所有`pg_class`.`reltablespace` 为零的表都将保存在这个表空间里；特别要指出的是，所有非共享的系统表也都存放在这里。
`datacl` | `aclitem[]` |  | 访问权限，参阅GRANT和REVOKE获取详细信息。

上一页 | 起始页 | 下一页
`pg_conversion` | 上一级 | `pg_db_role_setting`