七叶笔记 » 数据库 » Postgresql 存储过程(plpgsql)两层for循环的操作

Postgresql 存储过程(plpgsql)两层for循环的操作

CREATE [ OR REPLACE ] FUNCTION--创建一个函数,若有此函数,即取代重新创建 name -------函数名称

RETURNS---函数返回类型

具体的函数声明,请参考[postgresql存储过程]

下面说我写的函数:

很简单的逻辑,但是在修改了三四遍才实现,这个第二次写存储过程,很多语法不是很熟悉,要注意的如:

1.`变量声明要用DECLARE

2.``游标 CURSOR 的用法

3.for循环要在begin中执行,

4.循环中要用“:=”

补充:Postgresql中存储过程(函数)调用存储过程(函数)时应用注意的问题

在postgresql中我们在执行存储过程中往往会使用select 存储过程,但是如果存储过程中再调用 存储过程时,就不能这样用了,应该用perform 存储过程,可以去参考官方文档的说明

执行一个没有结果的表达式或者命令

有时候我们希望计算一个表达式或者一个命令,但是却丢弃其结果(通常因为我们经常调用一些存在有用的副作用但是不存在有用结果值的函数)。 要在 PL/pgSQL 里干这件事, 你可以使用PERFORM语句:

这条语句执行一个 query并且丢弃结果。 query 的写法和你平常写 SQL SELECT 命令是一样的, 只是把开头的关键字 SELECT 替换成 PERFORM。 PL/pgSQL 的变量和平常一样代换到命令中。 同样,如果命令生成至少一行,那么特殊的变量 FOUND 设置为真,如果没有生成行,则为假。

注意: 我们可能希望没有INTO子句的SELECT也能满足这样的需要, 但是目前可以接受的唯一的方法是PERFORM。

一个例子:

以上为个人经验,希望能给大家一个参考,也希望大家多多支持七叶笔记。如有错误或未考虑完全的地方,望不吝赐教。

相关文章