使用 psql 仅显示表名

seu*_*mac 8 postgresql psql information-schema

如何使用 psql 从指定的 Postgres 数据库中获取没有页眉或页脚或其他任何内容的表名?也就是说,如果我有名为“table1”和“table2”的表,那么输出将是:

table1
table2
Run Code Online (Sandbox Code Playgroud)

仅此而已。我一直在尝试各种组合,但看起来它应该比我制作的要容易得多。

Esa*_*nen 12

在 PostgreSQL 中(如文档The Information Schema 中所述):

SELECT table_name
FROM information_schema.tables
WHERE table_type='BASE TABLE'
AND table_schema='public';
Run Code Online (Sandbox Code Playgroud)

对于 MySQL,您将需要,table_schema='dbName'而对于 MSSQL,您需要删除该条件。

请注意,“仅显示当前用户有权访问的那些表和视图”。此外,如果您可以访问许多数据库并希望将结果限制在某个数据库中,您可以通过添加条件AND table_catalog='yourDatabase'(在 PostgreSQL 中)来实现。

如果您还想摆脱显示行名称的标题和显示行数的页脚,您可以使用命令行选项-t(简称--tuples-only)启动 psql,或者您可以通过\t(简称\pset tuples_only)切换 psql 命令行中的设置. 这可能很有用,例如,当使用\g [ |command ].

  • 这仍然是解决方案。这就是 psql 显示结果的方式。如果你想抑制页眉和页脚,你可以先命令 `\pset tuples_only`。 (2认同)
  • 更简单的方法是`\dt` (2认同)