PostgreSQL是可扩展的,因为它的操作是目录驱动的。如果你熟悉标准的关系型数据库系统,你会知道它们把有关数据库、表、列等的信息存储在总所周知的系统目录中(某些系统称之为数据目录)。目录对于用户来说好像其他的表一样,但是DBMS把自己的内部信息记录在其中。PostgreSQL和标准关系型数据库系统的一个关键不同是 PostgreSQL在其目录中存储更多信息:不只是有关表和列的信息,还有关于数据类型、函数、访问方法等等的信息。这些表可以被用户修改,并且因为PostgreSQL的操作是基于这些表的,所以PostgreSQL可以被用户扩展。通过比较,传统数据库系统只能通过在源代码中改变硬编码的过程或者载入由DBMS提供者特殊编写的模块进行扩展。
此外,PostgreSQL服务器能够通过动态载入把用户编写的代码结合到它自身中。也就是,用户能够指定一个实现了一个新类型或函数的对象代码文件(例如一个共享库),并且PostgreSQL将按照要求载入它。把用SQL编写的代码加入到服务器会更繁琐。这种“即时”修改其操作的能力让 PostgreSQL独特地适合新应用和存储结构的快速原型设计。
39.2.事件触发器触发矩阵 表39.1列出了所有命令的 事件触发器支持情况。表39.1.支持事件触发器的命令标签命令标签ddl_command_...
40.4.1. 更新规则如何工作40.4.2. 与视图合作定义在INSERT、UPDATE和DELETE上的规则与前一节描述的视图规则有明显的不同。首先,...
42.13.1. 移植示例42.13.2. 其他要关注的事项42.13.3. 附录这一节解释了PostgreSQL的PL/pgSQL语言和 Oracle 的PL/SQL语言之间的...
PL/Tcl 函数中的 Tcl 代码或者从 PL/Tcl 函数中调用的代码可以抛出一个错误,错误可以由执行某些非法操作产生或者通过使用 Tcl e...
通常,PL/Perl 被作为一种“可信的”编程语言安装,其名称 为plperl。在这种设置下,为了保持安全性禁用了某些 Perl 操作。一般...