要显示当前搜索路径,使用下面的命令:
SHOW search_path;
在缺省的设置中,返回下面的东西:
search_path
--------------
"$user",public
第一个元素声明搜索和当前用户同名的模式。因为还没有这样的模式存在,所以这条记录被忽略。第二个元素指向我们已经看过的公共模式。
搜索路径中第一个存在的模式是创建新对象的缺省位置。这就是为什么缺省的对象都会创建在 public 模式里的原因。如果在其它环境中引用对象且没有模式修饰,那么系统会遍历搜索路径,直到找到一个匹配的对象。因此,在缺省的配置里,任何未修饰的访问只能引用 public 模式。
要设置模式的搜索路径,可以用(省略了$user是因为并不立即需要它)
SET search_path TO myschema,myschema1,public;
该搜索路径设置为会话级别,如果需要全局设置,需更改postgresql的配置文件。
或者在会话之前先设置搜索路径。