pg_database
pg_database
pg_database系统目录表储存了可用数据库的信息。 数据库由SQL命令CREATE DATABASE创建。 和大多数系统目录不同,pg_database在系统中所有数据库之间共享。 每个系统只有一个pg_database副本,而不是每个数据库一个。
列 | 类型 | 参考 | 描述 |
---|---|---|---|
datname | name | 数据库名称。 | |
datdba | oid | pg_authid.oid | 数据库的拥有者,通常是创建它的人。 |
encoding | int4 | 数据库的字符编码。 pg_encoding_to_char()可以将此编号转换为编码名称。 | |
datcollate | name | 此数据库的LC_COLLATE。 | |
datctype | name | 此数据库的LC_CTYPE。 | |
datistemplate | boolean | 如果为真则这个数据库可以被用在CREATE DATABASE的TEMPLATE子句中来创建一个新的数据库作为这个数据库的克隆体。 | |
datallowconn | boolean | 如果为假,则该数据库不可连接。 这用于保护数据库template0不被修改。 | |
datconnlimit | int4 | 设置该数据库最大并发连接数。 -1表示没有限制。 | |
datlastsysoid | oid | 数据库中的最后一个系统OID。 | |
datfrozenxid | xid | 这个数据库中在此值之前的所有事务ID已被替换为的永久(冻结)事务ID。 这用于追踪该数据库是否需要清理,以防止事务ID回卷或允许pg_clog收缩,它是每个表的pg_class.relfrozenxid的最小值。 | |
datminmxid | xid | A Multixact ID is used to support row locking by multiple transactions. 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 | oid | pg_tablespace.oid | 数据库的默认表空间。 在此数据库中,所有pg_class.reltablespace为0的表都将存储在此表空间中。 所有非共享的系统目录也将放在那里。 |
datacl | aclitem[] | 由GRANT和REVOKE所给予的数据库访问特权。 |