Chapter 37. 规则系统

Table of Contents
37.1. 查询树
37.2. 视图和规则系统
37.2.1. SELECT规则如何运转
37.2.2. SELECT语句的视图规则
37.2.3. PostgreSQL里视图的强大能力
37.2.4. 更新一个视图
37.3. INSERTUPDATEDELETE上的规则
37.3.1. 更新规则是如何运转的
37.3.2. 与视图合作
37.4. 规则和权限
37.5. 规则和命令状态
37.6. 规则与触发器得比较

本章讨论PostgreSQL里的规则系统。 生产规则系统的概念是很简单的,但是在实际使用的时候会碰到很多细节问题。

有些其它数据库系统定义动态的数据库规则。 这些通常是存储过程和触发器,在PostgreSQL里,这些东西也可以通过函数和触发器来实现。

规则系统(更准确地说是查询重写规则系统)是和存储过程和触发器完全不同的东西。 它把查询修改为需要考虑规则的形式,然后把修改过的查询传递给查询规划器执行。 这是非常有效的工具并且可以用于许多像查询语言过程、视图、版本等。 这个规则系统的理论基础和能力在 有关数据库系统的规则,过程,缓存和视图 A Unified Framework for Version Modeling Using Production Rules in a Database System里有讨论。