列出PostgreSQL的information_schema中所有表的最佳方式是什么?澄清一下:我正在使用一个空DB(我没有添加任何我自己的表),但是我希望看到information_schema结构中的每个表。
information_schema
gev0vcfq1#
"\z”COMMAND也是在交互式psql会话中列出表的好方法。
例如
# psql -d mcdb -U admin -p 5555 mcdb=# /z Access privileges for database "mcdb" Schema | Name | Type | Access privileges --------+--------------------------------+----------+--------------------------------------- public | activities | table | public | activities_id_seq | sequence | public | activities_users_mapping | table | [..] public | v_schedules_2 | view | {admin=arwdxt/admin,viewuser=r/admin} public | v_systems | view | public | vapp_backups | table | public | vm_client | table | public | vm_datastore | table | public | vmentity_hle_map | table | (148 rows)
r1zhe5dt2#
1.从information_schema.tables获取所有表和视图,包括information_schema和pg_catalog的表和视图。
select * from information_schema.tables
2.获取属于特定方案表和视图
select * from information_schema.tables where table_schema not in ('information_schema', 'pg_catalog')
3.仅获取表(几乎\dt)
select * from information_schema.tables where table_schema not in ('information_schema', 'pg_catalog') and table_type = 'BASE TABLE'
7gcisfzg3#
您还可以使用
select * from pg_tables where schemaname = 'information_schema'
一般来说,所有pg* 表都允许您查看数据库中的所有内容,而不受您的权限限制(当然,如果您有权访问这些表的话)。
wsxa1bj14#
对于postgresql中的专用模式'xxx':
'xxx'
SELECT table_name FROM information_schema.tables WHERE table_schema = 'xxx' AND table_type = 'BASE TABLE'
如果没有table_type = 'BASE TABLE',您将列出表和视图
table_type = 'BASE TABLE'
t5fffqht5#
如果您需要快速而粗略的单行查询:select * from information_schema.tables您可以直接在Query工具中运行它,而不必打开psql。(其他帖子建议更具体的information_schema查询,但作为纽比,我发现这个一行查询帮助我掌握了表)
edqdpe6u6#
您应该能够只运行select * from information_schema.tables来获得Postgres为特定数据库管理的每个表的列表。您还可以添加一个where table_schema = 'information_schema',以便只查看信息模式中的表。
where table_schema = 'information_schema'
cgvd09ve7#
要列出表用途:
SELECT table_name FROM information_schema.tables WHERE table_schema='public'
它将只列出您创建的表。
h9vpoimq8#
\dt information_schema.
从psql中,应该没问题。
8条答案
按热度按时间gev0vcfq1#
"\z”COMMAND也是在交互式psql会话中列出表的好方法。
例如
r1zhe5dt2#
1.从information_schema.tables获取所有表和视图,包括information_schema和pg_catalog的表和视图。
2.获取属于特定方案表和视图
3.仅获取表(几乎\dt)
7gcisfzg3#
您还可以使用
一般来说,所有pg* 表都允许您查看数据库中的所有内容,而不受您的权限限制(当然,如果您有权访问这些表的话)。
wsxa1bj14#
对于postgresql中的专用模式
'xxx'
:如果没有
table_type = 'BASE TABLE'
,您将列出表和视图t5fffqht5#
如果您需要快速而粗略的单行查询:
select * from information_schema.tables
您可以直接在Query工具中运行它,而不必打开psql。
(其他帖子建议更具体的information_schema查询,但作为纽比,我发现这个一行查询帮助我掌握了表)
edqdpe6u6#
您应该能够只运行
select * from information_schema.tables
来获得Postgres为特定数据库管理的每个表的列表。您还可以添加一个
where table_schema = 'information_schema'
,以便只查看信息模式中的表。cgvd09ve7#
要列出表用途:
它将只列出您创建的表。
h9vpoimq8#
从psql中,应该没问题。