使用 psql 获取数据库名称列表

6

我想使用psql命令获取数据库名称列表。目前我已经有了以下内容:

psql -h example.com -U backup -c '\l'

然而,这给我提供了类似表格的结果。我只需要表名(每行一个)。我该如何实现这一点?

2个回答

22
这就完成了:
psql -h example.com -U backup -t -A -c "SELECT datname FROM pg_database WHERE datname <> ALL ('{template0,template1,postgres}')"

使用系统目录pg_database
阅读psql手册

3
我会添加 where datname not in ('template0', 'template1', 'postgres') - sherpya

4
我认为你不能使用\l来实现该功能。
但是下面的方法可以实现:
psql -h example.com -U backup -t -c "select datname from pg_database"

\t 关闭了头部和其他 "噪音"。而 select 语句仅返回数据库名称。

不确定 SQL 语句需要使用单引号还是双引号 - 在我的 Windows 控制台上,我必须使用双引号。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接