2015-09-21 37 views
0

这不起作用,导致ERROR: relation "user" does not exist,Postgres的查询失败,且不模式

select * from "user" 

这其中确实

select * from "dbo"."user" 
+0

这表明你的'search_path'不包含'dbo'模式。 'SHOW search_path'的输出是什么? –

+0

@CraigRinger它显示'“”$用户“,公共”“ –

+0

...并且你是用户'dbo'连接吗? –

回答

0

表不在模式修饰中搜索在search_path。这不会搜索每个模式。默认情况下,它仅搜索:

  • pg_catalog(隐含永远第一,没有上市search_path
  • pg_temp表空间(隐含的,而不是在search_path列出)​​
  • 当前用户命名的模式,列为$usersearch_path
  • public模式

我如果您希望PostgreSQL在其他地方查看,您必须修改search_path来告诉它,或完全模式化限定名称。

参见the PostgreSQL manual on search_path

此外,请注意,不同于某些数据库,名称dbo在PostgreSQL中没有特别的意义。这只是另一个名字。