pg_database 表存储关于可用数据库的信息。数据库是用 CREATE DATABASE 创建的。参考章19获取一些参数的详细含义。
和大多数系统表不同,pg_database 是在一个集群里的所有数据库共享的:每个集群只有一份 pg_database 拷贝,而不是每个数据库一份。
表43-15. pg_database 字段
名字 | 类型 | 引用 | 描述 |
---|---|---|---|
datname | name | 数据库名字 | |
datdba | oid | pg_authid.oid | 数据库所有人,通常为其创建者 |
encoding | int4 | 数据库的字符编码方式(pg_encoding_to_char() 能够将这个数字转换为相应的编码名称) | |
datistemplate | bool | 如果为真则此数据库可以用于 CREATE DATABASE 的 TEMPLATE 子句,把新数据库创建为此数据库的克隆。 | |
datallowconn | bool | 如果为假则没有人可以连接到这个数据库。这个字段用于保护 template0 数据库不被更改。 | |
datconnlimit | int4 | 设置该数据库上允许的最大并发连接数,-1 表示无限制。 | |
datlastsysoid | oid | 数据库里最后一个系统 OID ;对 pg_dump 特别有用。 | |
datfrozenxid | xid | 该数据库中中所有在这个之前的事务 ID 已经被一个固定的("frozen")事务 ID 替换。这用于跟踪该数据库是否需要为了防止事务 ID 重叠或者允许收缩 pg_clog 而进行清理。它是针对每个表的 pg_class.relfrozenxid 中的最小值。 | |
dattablespace | oid | pg_tablespace.oid | 该数据库的缺省表空间。在这个数据库里,所有 pg_class.reltablespace 为零的表都将保存在这个表空间里;特别要指出的是,所有非共享的系统表也都存放在这里。 |
datconfig | text[] | 运行时配置变量的会话缺省值 | |
datacl | aclitem[] | 访问权限,参阅 GRANT 和 REVOKE 获取详细描述。 |