创建“可更新视图”与直接插入有什么好处?

时间:2012-11-12 18:56:49

标签: postgresql sql-view

正如PostgreSQL手册中提到的那样

  

目前,视图是只读的:系统不允许插入,   更新或删除视图。您可以获得可更新的效果   通过创建在视图中重写插入等的规则来查看   对其他表格的适当行动。

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

- 更新 -

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

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

  

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

这仍然是一个方法,但看起来这可能使生活更容易接触任何需要它的人。

1 个答案:

答案 0 :(得分:3)

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

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

  • 另一个好处是你的引言的最后一句话: - 复数。这样,客户端可以发送 一个查询,您可以更改多个基础表。你也可以通过触发器实现这一点,主要是。

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