是否有任何查询可用来列出我的Postgres数据库中的所有表。

我尝试了这样一个问题:

SELECT table_name FROM information_schema.tables
                      WHERE table_schema='public' 

但是这个查询也返回视图。

我怎么能得到只有表名,只有,而不是视图?


当前回答

打开postgres终端和你想要的数据库:

psql dbname (run this line in a terminal)

然后在postgres环境下执行该命令

\d

这将按名称描述所有表。基本上是一个按名称升序排列的表列表。

然后你可以尝试按字段描述一个表:

\d tablename.

希望这能有所帮助。

其他回答

select 
 relname as table 
from 
 pg_stat_user_tables 
where schemaname = 'public'

如果track_activities被禁用,这将不起作用


select 
  tablename as table 
from 
  pg_tables  
where schemaname = 'public'

阅读更多关于pg_tables的信息

打开postgres终端和你想要的数据库:

psql dbname (run this line in a terminal)

然后在postgres环境下执行该命令

\d

这将按名称描述所有表。基本上是一个按名称升序排列的表列表。

然后你可以尝试按字段描述一个表:

\d tablename.

希望这能有所帮助。

这个查询(基于手册中的描述)怎么样?

SELECT table_name
  FROM information_schema.tables
 WHERE table_schema='public'
   AND table_type='BASE TABLE';

试试这个:

SELECT table_name 
FROM information_schema.tables 
WHERE table_schema='public' AND table_type='BASE TABLE'

这个有用!

在psql中只给\dt怎么样?见https://www.postgresql.org/docs/current/static/app-psql.html。