PostgreSQL 18 中文参考文档(未翻译部分保留英文)🌐 切换到英文原版 →

Chapter 39. 规则系统

Table of Contents

39.1. 查询树结构剖析
39.2. 视图与规则系统
39.2.1. SELECT 规则的工作原理
39.2.2. 非 SELECT 语句中的视图规则
39.2.3. 视图与重写系统的表现力
39.2.4. 可更新视图
39.3. 物化视图
39.4. 针对 INSERT、UPDATE 与 DELETE 的规则
39.4.1. 更新规则的工作机制
39.4.2. 更新规则与视图的配合
39.5. 规则与权限
39.6. 规则与命令状态
39.7. 规则与触发器的对比

本章深入探讨 PostgreSQL 的查询重写规则系统(Rule System)。规则系统在概念上极其优雅,但在实际工程运用中涉及到大量深层次的技术细节。

其他部分数据库系统常通过活动规则(通常指存储过程与触发器)来实现动态业务约束。在 PostgreSQL 中,这些需求同样可以通过常规函数与触发器来实现。

然而,PostgreSQL 的查询重写规则系统与存储过程和触发器有着本质的不同:它直接在 SQL 语法解析树层面介入,在优化器制定物理执行计划之前,根据预设的规则对查询语法树执行就地重写或派生改写,随后将改写后的新查询树递交给优化器。它拥有极其强大的能力,是支撑数据库实现普通视图、可更新视图以及底层元数据抽象的核心支柱。