sql
过程语言 sql。
当前查看 PostgreSQL 18。
中文定义与说明
过程语言 sql。
- 受信任
是- 验证函数
fmgr_sql_validator
同版本中文手册节选
SQL 函数执行由任意 SQL 语句组成的一个列表,并返回列表中最后一个查询的结果。在简单(非集合)情况下,将返回最后一个查询结果的第一行。(请记住,除非使用 ORDER BY,否则多行结果中的“第一行”并没有明确定义。)如果最后一个查询完全没有返回任何行,则返回空值。
或者,一个 SQL 函数可以通过指定函数的返回类型为 SETOF 被声明为返回一个集合(也就是多个行),或者等效地声明它为 sometypeRETURNS TABLE(。在这种情况下,最后一个查询的结果的所有行会被返回。下文将给出进一步的细节。
columns)
SQL 函数的函数体必须是一个由分号分隔的 SQL 语句列表。最后一条语句后的分号是可选的。除非该函数被声明为返回
void,否则最后一条语句必须是 SELECT,或者是带有 RETURNING 子句的 INSERT、UPDATE、DELETE 或
MERGE。
任意一组 SQL 语言命令都可以打包并定义成函数。除
SELECT 查询外,这些命令还可以包含数据修改查询(INSERT、UPDATE、DELETE 和 MERGE),以及其他
SQL 命令。(在 SQL 函数中不能使用事务控制命令,例如
COMMIT、SAVEPOINT,也不能使用某些工具命令,例如 VACUUM。)不过,最后一条命令必须是
SELECT,或者带有 RETURNING
子句,并返回与函数声明返回类型相符的结果。或者,如果你想定义一个执行动作但没有有用返回值的 SQL 函数,也可以把它定义为返回 void。例如,下面这个函数会从 emp 表中删除薪资为负的行:
说明
过程语言 sql。
- 种类
- 原生函数语言
- 可信
- t
- 校验函数
- fmgr_sql_validator
文档与源码
来源构建
- 版本
- 18.6
- 构建
- https://ftp.postgresql.org/pub/source/v18.6/postgresql-18.6.tar.bz2
- 来源指纹
555610c24d53e4316da5b7d3fc25c279d96856d5e0e23ee308c328c5fa881d9f
版本比较
PostgreSQL 17 → 18: 无变化。
比较已记录的接口与属性,排除来源指纹和构建元数据。某个样本中没有记录,不能据此判断实际引入或移除的版本。
相关条目
导出 JSON · 返回过程语言 · 收录范围为 PostgreSQL 10 至 20;最早采样版本不一定是实际引入版本。