PostgreSQL中\dt命令无法显示表的问题求助
解决PostgreSQL无法列出表的问题
问题分析
从你提供的命令输出来看:
\dn能正常列出当前数据库的两个schema:heroku_ext和public\dt无结果、指定名称查询失败,说明要么目标schema下无表,要么查询方式不对,或是权限不足
解决步骤
- 查看当前搜索路径
执行命令确认search_path设置(psql默认只搜索该路径内的schema):
SHOW search_path;
- 指定schema查询所有表
- 查看某个schema下的所有表(比如public):
\dt public.*
- 查看数据库内所有schema的表:
\dt *.*
- 检查访问权限
如果上述命令仍无结果,可能是当前用户缺少对应schema的访问权限,执行以下命令查看权限:
SELECT nspname, usename, privilege_type FROM information_schema.schema_privileges WHERE usename = current_user;
若缺少USAGE或SELECT权限,联系schema所有者执行授权:
GRANT USAGE ON SCHEMA public TO 你的用户名; GRANT SELECT ON ALL TABLES IN SCHEMA public TO 你的用户名;
- 确认当前连接的数据库
你当前连接的是logicsoft-internship::DATABASE,若目标表在其他数据库中,切换后再查询:
\c 目标数据库名 \dt *.*
你的命令执行记录:
logicsoft-internship::DATABASE=> \dn List of schemas Name | Owner ------------+---------------- heroku_ext | u8q98eik4pd35o public | grmgsmxgscmlmc (2 rows) logicsoft-internship::DATABASE=> \dt Did not find any relations. logicsoft-internship::DATABASE=> \dt dauokokqc98tl4 Did not find any relation named "dauokokqc98tl4". logicsoft-internship::DATABASE=> \dt dauokokqc98tl4.public Did not find any relation named "dauokokqc98tl4.public"
内容的提问来源于stack exchange,提问作者Tanvi Sharma
相关产品推荐
相关产品推荐

