PostgreSQL 存储过程语言深入解析
1. 函数与存储过程基础
在深入存储过程的结构之前,理解函数和存储过程的基本区别至关重要。函数是普通 SQL 语句的一部分,不允许启动或提交事务。例如:
SELECT func(id) FROM large_table;
若 func(id) 被调用 5000 万次,使用 Commit 函数会破坏事务的完整性和一致性。
而存储过程可以控制事务,甚至能依次运行多个事务,但不能在 SELECT 语句中运行,需使用 CALL 命令。 CALL 命令的语法如下:
CALL name ( [ argument ] [, ...] )
在 PostgreSQL 中,函数从一开始就存在,而存储过程的概念是在 PostgreSQL 11 中引入的。
2. 函数的结构
以一个简单的加法函数为例:
test=# CREATE OR REPLACE FUNCTION mysum(int, int)
RETURNS int AS
'
SELECT $1 + $2;
' LANGUAGE 'sql';
CREATE FUNCTION
该函数使用 S
超级会员免费看
订阅专栏 解锁全文
1196

被折叠的 条评论
为什么被折叠?



