视图和search_path

时间:2017-02-27 17:52:03

标签: postgresql

我的Postgres数据库是一个多模式数据库。 每个模式都有相同的结构,但数据是不同的。

因为我遇到了一个特定的问题,所以工作正常。 看来根据当前的search_path生成视图。

我们说我的数据库就像:

  • 公共
  • schema1

如果我SET search_path TO schema1, public。 然后SELECT * FROM schema1.view; 它将从公共模式中检索数据。

我在生成视图之前尝试更改search_path,但它没有工作。 我试图将我的表格添加到我的视图中,它有效。我的解决方案是在使用我的新数据库'创建我的视图之前使用目标模式作为前缀。脚本。但我发现它有点“脏”&#39 ;;

我希望能够更深入地了解这个主题!

由于

1 个答案:

答案 0 :(得分:2)

创建视图时,视图定义中的所有非限定对象名称将根据创建视图时search_path 的值进行解析。引用表的Object-ID是视图定义的一部分。

因此,从视图search_path开始,SELECT设置为什么并不重要。