psql:尽管存在关系,但没有找到关系
Posted
技术标签:
【中文标题】psql:尽管存在关系,但没有找到关系【英文标题】:psql: no relations found despite existing relations 【发布时间】:2013-07-08 19:43:21 【问题描述】:版本 8.4.16(版本没有选择)。
我按如下方式登录我的数据库:
psql -d JRuser
得到的提示是:
JRuser=>
我做 \d 或 \dt 期望看到架构“翻译”中所有关系的列表
No relations found.
但我可以从架构中的任何表中进行选择,而不会出现任何问题。例如:
select * from translate.storage; --works fine
我已经通过 \dn+:
确保了 JRuser 的访问权限是正确的 List of schemas
Name | Owner | Access privileges | Description
translate | JRuser | JRuser=UC/JRuser |
: postgres=UC/JRuser
为什么我看不到翻译架构中的表?
【问题讨论】:
我觉得你需要使用\dt translation.*
我当然可以做到这一点,但直到今天我已经能够做到 \d 或 \d 没有任何限定符。我没有更改任何配置设置,所以我很困惑。
【参考方案1】:
\d
在 psql 中仅显示 可见 表,即在您的 search_path
中。
试试看:
SHOW search_path;
SET search_path= translate;
\d
您的会话设置可能已以某种方式更改。有多种方法可以做到这一点:
How does the search_path influence identifier resolution and the "current schema"后面关于 dba.SE 的相关问题:
Why can't I see my table (PostgreSQL) when I use \dt(+) inside psql?【讨论】:
如果用户希望能够在所有模式上显示表,search_path 变量是否可以包含多个模式? @lostinthebits:见这里:postgresql.org/docs/8.4/static/sql-set.html#AEN65998 更改 search_path 很繁琐,但对于 shell 命令查找新数据库的关系来说是必要的。这是关于路径值需要是什么的更详细的答案:***.com/questions/9067335/…以上是关于psql:尽管存在关系,但没有找到关系的主要内容,如果未能解决你的问题,请参考以下文章