正如PostgreSQL手册中提到的那样
目前,视图是只读的:系统不允许插入, 更新或删除视图。您可以获得可更新的效果 通过创建在视图中重写插入等的规则来查看 对其他表格的适当行动。
使用规则与直接插入/更新操作创建可更新视图有什么好处?我需要注意哪些隐藏的“陷阱”?
- 更新 -
似乎9.3将包含可更新的视图:
http://www.depesz.com/2012/12/11/waiting-for-9-3-support-automatically-updatable-views/
PostgreSQL的下一个版本计划是9.3版本。该版本的暂定时间表将于2013年第三季度发布。
这仍然是一个方法,但看起来这可能使生活更容易接触任何需要它的人。
答案 0 :(得分:3)
您可以为客户端提供稳定接口,只要您相应地编辑视图上的规则,仍然可以更改基础表的结构。我碰巧在过去使用它,当我不得不删除一个表并且不想唤醒一个困难的客户端时,所以我提供了一个视图,并且客户端从未注意到该更改。
在多用户环境中,您可以比多个表上的权限更轻松地在一个视图上管理权限。
另一个好处是你的引言的最后一句话:表 - 复数。这样,客户端可以发送 一个查询,您可以更改多个基础表。你也可以通过触发器实现这一点,主要是。
除此之外,使用触发器操作通常更简单。