nas服务器-postgresql 存储函数调用变量的3种方法小结

这篇文章首要介绍了postgresql 存储函数调用变量的3种办法小结,具有很好的参考价值,期望对我们有所协助。一同跟从小编过来看看吧。

一、假设有表student,字段别离有id,remark,name等字段。

二、写一个存储函数,依据传过去的变量ID更新remark的内容。

调用该存储函数格局如下:

1select update_student(1);

三、存储函数示例如下:

CREATE OR REPLACE FUNCTION public.update_student(id integer)
RETURNS text AS
$BODY$
declare sql_str_run text;
BEGIN
/*
–method 1
select ‘update student set remark =”’|| now() ||”’ where student.id = ‘|| $1 into sql_str_run ;
execute sql_str_run;
–method 2
execute ‘update student set remark =now() where student.id=$1’ using $1;
*/
–method 3
update student set remark =now() where student.id=$1;

return ‘update is ok’ ;
end
$BODY$
LANGUAGE plpgsql VOLATILE

以上三种办法都能够完成相同的作用,实践运用中,能够结合场景来运用。比较简单的情况下直接用method 3。

比方,表名、字段名自身是变量,那么method 3 就无法完成,需求依据method 1或method 2来完成。

method 1或method 2 有什么区别呢?

假如需求拼的变量能够直接获取的,则用method2即可。假如变量自身也是需求需求经过函数或句子的计算来取得,一般主张用method 1,先拼成一个字符串,再调用execute来完成。

弥补:postgresql存储函数/存储进程用sql句子来给变量赋值

–界说变量

1a numeric;

方法一:

1select sqla into a from table1 where b = ‘1’ ; –这是sql句子赋值

方法二:

sql1:= ‘select a from table1 where b = ‘ ‘1’ ‘ ‘;
execute sql1 into a; –这是履行存储函数赋值