Pl/pgSQL:执行VS调用 [英] PL/pgSQL: PERFORM vs CALL
本文介绍了Pl/pgSQL:执行VS调用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在研究从另一个过程调用过程与在Postgres 13中重复代码对性能的影响时,我发现您可以使用CALL
或PERFORM
来调用其他过程。
我在谷歌上搜索了差异,但我找到的唯一相似的东西是
地址PERFORM
与EXECUTE
而不是PERFORM
与CALL
。
有人知道有什么不同吗?我应该使用哪一个(从PL/pgSQL过程调用过程时)?
推荐答案
CALL
是执行PROCEDURE
的命令,在添加SQL过程时随postgres 11一起添加。不能使用SELECT
调用过程。
PERFORM
是一个PL/pgSQL命令,用于执行任何SELECT
语句并通过替换SELECT
关键字(包括普通FUNCTION
呼叫)。它一直是PL/pgSQL的一部分。
不能CALL
函数,也不能PERFORM
过程。
您可以在PL/pgSQL代码块内使用PERFORM
,可以在任何地方使用SELECT
(不使用INTO
)。
小提琴here
相关:
这篇关于Pl/pgSQL:执行VS调用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文