2025年9月25日: PostgreSQL 18 发布!
支持的版本: 当前 (18) / 17 / 16 / 15 / 14 / 13
开发版本: devel
不支持的版本: 12 / 11 / 10 / 9.6 / 9.5 / 9.4 / 9.3 / 9.2 / 9.1 / 9.0 / 8.4 / 8.3 / 8.2 / 8.1 / 8.0 / 7.4

第五部分。 服务器编程

本部分内容涉及使用用户自定义函数、数据类型、触发器等来扩展服务器功能。这些是高级主题,应在理解了所有其他关于 PostgreSQL 的用户文档之后才能进行。本部分的后续章节将介绍 PostgreSQL 发行版中可用的服务器端编程语言以及与服务器端编程相关的通用问题。在深入研究服务器端编程的材料之前,至少阅读 第 36 章 (关于函数) 的早期部分至关重要。

目录

36. 扩展SQL
36.1. 可扩展性如何工作
36.2. PostgreSQL 类型系统
36.3. 用户定义函数
36.4. 用户定义过程
36.5. 查询语言 (SQL) 函数
36.6. 函数重载
36.7. 函数易变性类别
36.8. 过程语言函数
36.9. 内部函数
36.10. C 语言函数
36.11. 函数优化信息
36.12. 用户定义聚合
36.13. 用户定义类型
36.14. 用户定义运算符
36.15. 运算符优化信息
36.16. 将扩展接口到索引
36.17. 将相关对象打包到扩展中
36.18. 扩展构建基础设施
37. 触发器
37.1. 触发器行为概述
37.2. 数据更改的可视性
37.3. 用 C 编写触发器函数
37.4. 完整的触发器示例
38. 事件触发器
38.1. 事件触发器行为概述
38.2. 用 C 编写事件触发器函数
38.3. 完整的事件触发器示例
38.4. 表重写事件触发器示例
38.5. 数据库登录事件触发器示例
39. 规则系统
39.1. 查询树
39.2. 视图和规则系统
39.3. 物化视图
39.4. 关于 INSERTUPDATEDELETE 的规则
39.5. 规则和权限
39.6. 规则和命令状态
39.7. 规则与触发器的区别
40. 过程语言
40.1. 安装过程语言
41. PL/pgSQLSQL过程语言
41.1. 概述
41.2. PL/pgSQL 结构
41.3. 声明
41.4. 表达式
41.5. 基本语句
41.6. 控制结构
41.7. 游标
41.8. 事务管理
41.9. 错误和消息
41.10. 触发器函数
41.11. PL/pgSQL 内部机制
41.12. PL/pgSQL 开发技巧
41.13. 从 Oracle PL/SQL 移植
42. PL/Tcl — Tcl 过程语言
42.1. 概述
42.2. PL/Tcl 函数和参数
42.3. PL/Tcl 中的数据值
42.4. PL/Tcl 中的全局数据
42.5. PL/Tcl 中的数据库访问
42.6. PL/Tcl 中的触发器函数
42.7. PL/Tcl 中的事件触发器函数
42.8. PL/Tcl 中的错误处理
42.9. PL/Tcl 中的显式子事务
42.10. 事务管理
42.11. PL/Tcl 配置
42.12. Tcl 过程名
43. PL/Perl — Perl 过程语言
43.1. PL/Perl 函数和参数
43.2. PL/Perl 中的数据值
43.3. 内置函数
43.4. PL/Perl 中的全局值
43.5. 受信任和不受信任的 PL/Perl
43.6. PL/Perl 触发器
43.7. PL/Perl 事件触发器
43.8. PL/Perl 内部机制
44. PL/Python — Python 过程语言
44.1. PL/Python 函数
44.2. 数据值
44.3. 数据共享
44.4. 匿名代码块
44.5. 触发器函数
44.6. 数据库访问
44.7. 显式子事务
44.8. 事务管理
44.9. 实用函数
44.10. Python 2 与 Python 3
44.11. 环境变量
45. 服务器编程接口
45.1. 接口函数
45.2. 接口支持函数
45.3. 内存管理
45.4. 事务管理
45.5. 数据更改的可视性
45.6. 示例
46. 后台工作进程
47. 逻辑解码
47.1. 逻辑解码示例
47.2. 逻辑解码概念
47.3. 流复制协议接口
47.4. 逻辑解码SQL接口
47.5. 与逻辑解码相关的系统目录
47.6. 逻辑解码输出插件
47.7. 逻辑解码输出写入器
47.8. 逻辑解码的同步复制支持
47.9. 逻辑解码的大事务流
47.10. 逻辑解码的两阶段提交支持
48. 复制进度跟踪
49. 归档模块
49.1. 初始化函数
49.2. 归档模块回调
50. OAuth 验证器模块
50.1. 安全地设计验证器模块
50.2. 初始化函数
50.3. OAuth 验证器回调

提交更正

如果您在文档中发现任何不正确、与您对特定功能的体验不符或需要进一步澄清的内容,请使用 此表单 报告文档问题。