🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# Chapter 38\. 规则系统 **Table of Contents** + 38.1\. 查询树 + 38.2\. 视图和规则系统 + 38.2.1\. `SELECT`规则如何运转 + 38.2.2\. 非 `SELECT` 语句的视图规则 + 38.2.3\. PostgreSQL里视图的强大能力 + 38.2.4\. 更新一个视图 + 38.3\. 物化视图 + 38.4\. 在 `INSERT`, `UPDATE`, 和 `DELETE`上的规则 + 38.4.1\. 更新规则是如何运转的 + 38.4.2\. 与视图合作 + 38.5\. 规则和权限 + 38.6\. 规则和命令状态 + 38.7\. 规则与触发器的比较 本章讨论PostgreSQL里的规则系统。 生产规则系统的概念是很简单的,但是在实际使用的时候会碰到很多细节问题。 有些其它数据库系统定义动态的数据库规则。这些通常是存储过程和触发器, 在PostgreSQL里,这些东西也可以通过函数和触发器来实现。 规则系统(更准确地说是查询重写规则系统)是和存储过程和触发器完全不同的东西。 它把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询规划器执行。 这是非常有效的工具并且可以用于许多像查询语言过程、视图、版本等。 这个规则系统的理论基础和能力在[](#calibre_link-1318) [数据库系统中的规则,过程,缓存和视图](http://db.cs.berkeley.edu/papers/ERL-M90-36.pdf) 和[_数据库系统中为版本模型使用生产规则的统一框架_](#calibre_link-1522)里有讨论。