gpt4 book ai didi

database - 如何在 postgresql 中列出所有数据库及其模式?

转载 作者:搜寻专家 更新时间:2023-10-30 20:09:11 25 4
gpt4 key购买 nike

我正在寻找一种方法来列出 OpenSuse postgresql 服务器上的所有数据库和所有模式。我知道我可以使用诸如 \l+ 之类的元命令来列出所有数据库,但是有什么方法可以列出所有数据库的所有信息,包括数据库、模式和大小信息?

我想要一种整体查看所有内容的方法。

谢谢!

最佳答案

自 PostgreSQL 9.4.1 起,以下查询将提供与 psql 中的 \l+ 相同的输出:

SELECT
d.datname as "Name",
pg_catalog.pg_get_userbyid(d.datdba) as "Owner",
pg_catalog.pg_encoding_to_char(d.encoding) as "Encoding",
d.datcollate as "Collate",
d.datctype as "Ctype",
pg_catalog.array_to_string(d.datacl, E'\n') as "Access privileges",
CASE WHEN pg_catalog.has_database_privilege(d.datname, 'CONNECT')
THEN pg_catalog.pg_size_pretty(pg_catalog.pg_database_size(d.datname))
ELSE 'No Access'
END as "Size",
t.spcname as "Tablespace",
pg_catalog.shobj_description(d.oid, 'pg_database') as "Description"
FROM
pg_catalog.pg_database d
JOIN
pg_catalog.pg_tablespace t on d.dattablespace = t.oid
ORDER BY 1;

这是来源:src/bin/psql/describe.c

关于database - 如何在 postgresql 中列出所有数据库及其模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30172219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com