我的Postgres数据库是一个多模式数据库。 每个模式都有相同的结构,但数据是不同的。
因为我遇到了一个特定的问题,所以工作正常。 看来根据当前的search_path生成视图。
我们说我的数据库就像:
如果我SET search_path TO schema1, public
。
然后SELECT * FROM schema1.view;
它将从公共模式中检索数据。
我在生成视图之前尝试更改search_path,但它没有工作。 我试图将我的表格添加到我的视图中,它有效。我的解决方案是在使用我的新数据库'创建我的视图之前使用目标模式作为前缀。脚本。但我发现它有点“脏”&#39 ;;
我希望能够更深入地了解这个主题!
由于
答案 0 :(得分:2)
创建视图时,视图定义中的所有非限定对象名称将根据创建视图时search_path
的值进行解析。引用表的Object-ID是视图定义的一部分。
因此,从视图search_path
开始,SELECT
设置为什么并不重要。