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

目录

46.1.Python 2 与 Python 346.2.

PL/Python 函数46.3.

数据值46.3.1.

数据类型映射46.3.2.

空,无46.3.3.

数组、列表46.3.4.

复合类型46.3.5.

设置返回函数46.4.

共享数据46.5.

匿名代码块46.6.

触发函数46.7.

数据库访问46.7.1.

数据库访问功能46.7.2.

捕获错误46.8.

显式子事务46.8.1.

子事务上下文管理器46.8.2.

较旧的 Python 版本46.9.

事务管理46.10.

实用功能46.11.

环境变量

PL/Python 过程语言允许 PostgreSQL 函数和过程以Python 语言 (opens new window).

要在特定数据库中安装 PL/Python,请使用创建扩展plpythonu(但另见第 46.1 节)。

# 提示

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

PL/Python 仅作为一种“不受信任”的语言提供,这意味着它不提供任何方式来限制用户可以在其中执行的操作,因此被命名为plpythonu.受信任的变体plpython如果在 Python 中开发了一种安全的执行机制,将来可能会变得可用。不受信任的 PL/Python 中函数的编写者必须注意该函数不能用于做任何不需要的事情,因为它可以做任何可以由以数据库管理员身份登录的用户完成的事情。只有超级用户才能使用不受信任的语言创建函数,例如plpythonu.

# 笔记

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