3

正如它在 PostgreSQL 手册中提到的那样

目前,视图是只读的:系统不允许对视图进行插入、更新或删除。您可以通过创建将视图上的插入等内容重写为其他表上的适当操作的规则来获得可更新视图的效果。

使用规则创建可更新视图与直接插入/更新操作相比有什么好处?是否有任何我需要注意的隐藏“陷阱”?

- 更新 -

似乎 9.3 将包括可更新的视图:

http://www.depesz.com/2012/12/11/waiting-for-9-3-support-automatically-updatable-views/

PostgreSQL 的下一个版本计划是 9.3 版本。该版本的暂定时间表将在 2013 年第三季度发布。

这还有一段路要走,但看起来这可能会让任何需要它的人的生活变得更轻松。

4

1 回答 1

3
  • 只要您相应地编辑视图上的规则,您就可以拥有一个稳定的客户端接口,并且仍然可以更改基础表的结构。过去我碰巧使用过这个,当我不得不删除一个表并且不想唤醒一个困难的客户时,所以我提供了一个视图作为 drop in 并且客户从未注意到这个变化。

  • 在多用户环境中,您可以更轻松地管理一个视图的权限,而不是管理多个表的权限。

  • 另一个好处是你引用的最后一句话:表格- 复数。这样,客户端可以发送一个查询,您可以更改多个基础表。大多数情况下,您也可以使用触发器来实现这一点。

除此之外,使用触发器操作通常更简单。

于 2012-11-12T19:17:28.573 回答