Skip to content

第 46 章. PL/Python — Python 过程语言

目录

46.1. PL/Python 函数
46.2. 数据值
46.2.1. 数据类型映射
46.2.2. Null、None
46.2.3. 数组、列表
46.2.4. 复合类型
46.2.5. 返回集的函数
46.3. 共享数据
46.4. 匿名代码块
46.5. 触发器函数
46.6. 数据库访问
46.6.1. 数据库访问函数
46.6.2. 捕获错误
46.7. 显式子事务
46.7.1. 子事务上下文管理器
46.8. 事务管理
46.9. 实用程序函数
46.10. Python 2 与 Python 3
46.11. 环境变量

PL/Python过程语言允许使用Python 语言编写PostgreSQL函数和过程。

要在特定数据库中安装 PL/Python,请使用CREATE EXTENSION plpython3u

提示

如果将语言安装到template1中,则随后创建的所有数据库都将自动安装该语言。

PL/Python 仅作为“不受信任的”语言提供,这意味着它不提供任何限制用户在其中可以做什么的方法,因此命名为plpython3u。如果在 Python 中开发了安全执行机制,将来可能会提供受信任的变体plpython。不受信任的 PL/Python 中函数的编写者必须注意,该函数不能用于执行任何不需要的操作,因为它将能够执行数据库管理员登录用户可以执行的任何操作。只有超级用户才能在不受信任的语言(如plpython3u)中创建函数。

注意

源包的用户必须在安装过程中专门启用 PL/Python 的构建。(有关更多信息,请参阅安装说明。)二进制包的用户可能会在单独的子包中找到 PL/Python。