我的 Postgres 数据库是一个多模式数据库。每个模式都有相同的结构,但数据不同。
自从我遇到一个特定问题以来,它工作得很好。看来视图是根据当前的search_path生成的。
假设我的数据库是这样的:
如果我SET search_path TO schema1, public。然后SELECT * FROM schema1.view;
它将从公共模式中检索数据。
我尝试在生成视图之前更改 search_path,但没有成功。我尝试将我的表添加到我的视图中,它起作用了。我的解决方案是在使用“新数据库”脚本创建视图之前添加目标架构前缀。但我觉得它有点“脏”;
我很想对这个主题有更多的了解!
谢谢
创建视图时,将根据search_path 创建视图时的值解析视图定义中的所有非限定对象名称。引用表的对象 ID 是视图定义的一部分。
因此,当您从视图中search_path设置什么并不重要。SELECT
| 归档时间: |
|
| 查看次数: |
1424 次 |
| 最近记录: |