Redrock Postgres 搜索 英文
版本: 9.3 / 9.4 / 9.5 / 9.6 / 10 / 11 / 12 / 13 / 14 / 15 / 16 / 17 / 18

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

目录

44.1. PL/Python 函数
44.2. 数据值
44.2.1. 数据类型映射
44.2.2. Null, None
44.2.3. 数组, 列表
44.2.4. 复合类型
44.2.5. 返回集合的函数
44.3. 共享数据
44.4. 匿名代码块
44.5. 触发器函数
44.6. 数据库访问
44.6.1. 数据库访问函数
44.6.2. 捕获错误
44.7. 显式子事务
44.7.1. 子事务上下文管理器
44.8. 事务管理
44.9. 实用函数
44.10. Python 2 与 Python 3
44.11. 环境变量

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

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

提示

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

PL/Python 仅作为“不可信”(untrusted)语言可用,这意味着它不提供任何限制用户可以执行的操作的方法,因此其名称为 plpython3u。如果将来在 Python 中开发了安全的执行机制,可能会提供一个受信任的变体 plpython。使用不可信 PL/Python 编写函数时,必须小心确保该函数不会被用于执行任何不受欢迎的操作,因为它能够执行作为数据库管理员登录的用户可以执行的任何操作。只有超级用户才能创建不可信语言(如 plpython3u)中的函数。

注意

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