Postgresql 创建“一个”的好处是什么;“可更新视图”;还是直接插入?

Postgresql 创建“一个”的好处是什么;“可更新视图”;还是直接插入?,postgresql,sql-view,Postgresql,Sql View,正如PostgreSQL手册中提到的那样 当前,视图为只读:系统不允许插入, 在视图上更新或删除。您可以获得可更新文件的效果 通过创建将视图上的插入等重写为的规则进行查看 在其他表上执行适当的操作 与直接插入/更新操作相比,使用规则创建可更新视图有什么好处?有什么隐藏的“陷阱”我需要注意吗 --更新-- 9.3似乎将包括可更新的视图: PostgreSQL的下一个版本计划是9.3版本。该版本的暂定时间表将于2013年第三季度发布 这仍有一段路要走,但看起来这可能会让任何需要的人的生活变得更轻松

正如PostgreSQL手册中提到的那样

当前,视图为只读:系统不允许插入, 在视图上更新或删除。您可以获得可更新文件的效果 通过创建将视图上的插入等重写为的规则进行查看 在其他表上执行适当的操作

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

--更新--

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

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

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

  • 您可以为客户机提供一个稳定的界面,并且只要相应地编辑视图上的规则,就可以更改基础表的结构。我在过去碰巧使用过这个,当时我不得不移除一个表,不想吵醒一个困难的客户,所以我提供了一个视图作为访问,而客户从未注意到这个变化

  • 在多用户环境中,管理一个视图上的权限比管理多个表上的权限更容易

  • 另一个好处是在最后一句话:表-复数。这样,客户机可以发送一个查询,您可以更改多个基础表。大多数情况下,您也可以通过触发器实现这一点


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

@RobertH注意,在较新的PostgreSQL版本中,您可以在视图上使用
触发器。它们可能比规则更可取(它们更容易正确,更容易调试),并提供另一种选择。(+1)@CraigRinger谢谢你的选择,我一定去看看。