↑↓ 选择 ↵ 打开 ⌫ 改范围 完整检索页

pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。

百科 / 过程语言 / 原生函数语言

sql

过程语言 sql。

当前查看 PostgreSQL 18。

中文定义与说明

过程语言 sql。

受信任
是
验证函数
fmgr_sql_validator

同版本中文手册节选

SQL 函数执行由任意 SQL 语句组成的一个列表,并返回列表中最后一个查询的结果。在简单(非集合)情况下,将返回最后一个查询结果的第一行。(请记住,除非使用 ORDER BY,否则多行结果中的“第一行”并没有明确定义。)如果最后一个查询完全没有返回任何行,则返回空值。

或者,一个 SQL 函数可以通过指定函数的返回类型为 SETOF sometype 被声明为返回一个集合(也就是多个行),或者等效地声明它为 RETURNS 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;最早采样版本不一定是实际引入版本。