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

Chapter 44. PL/Python — Python 过程语言

目录

44.1. PL/Python 函数
44.2. 数据值
44.2.1. 数据类型映射
44.2.2. 空值、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

Tip

如果把某种语言安装到template1中,之后创建的所有数据库都会自动安装该语言。

PL/Python 只能作为一种不受信任的语言使用,这意味着它不提供任何机制来限制用户能在其中做什么,因此其名称为plpython3u。如果将来能在 Python 中开发出安全的执行机制,受信任的变体plpython可能会出现。使用不受信任的 PL/Python 编写函数时,函数编写者必须确保该函数不会被用来做任何不希望发生的事情,因为它能够做到任何以数据库管理员身份登录的用户所能做的事情。只有超级用户才能在plpython3u这类不受信任的语言中创建函数。

Note

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