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

第 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 只能作为 不可信 语言,这意味着它不会提供任何限制用户操作的方法,因此被命名为 plpython3u。一个可信的变体 plpython 可能会在未来提供,如果在 Python 中开发出一个安全执行机制的话。不可信的 PL/Python 中函数的编写者必须谨慎处理,确保无法使用该函数进行任何不良的操作,因为它将能够执行任何已作为数据库管理员登录的用户所能执行的操作。只有超级用户才能创建不可信语言(如 plpython3u)中的函数。

注意

源软件包的用户必须在安装过程中启用 PL/Python 的编译。(有关详细信息,请参考安装说明。)二进制软件包的用户可能会在单独的子包中找到 PL/Python。