postgresql存储函数调用变量的3种方法小结
项目招商找A5 快速获取精准代理名单
这篇文章主要介绍了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 1select 'update student set remark ='''|| now() ||''' where student.id = '|| $1 into sql_str_run ;execute sql_str_run;--method 2execute '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; --这是执行存储函数赋值
文章来源:脚本之家
来源地址:https://www.jb51.net/article/204911.htm
尊敬的看官您对postgresql存储函数调用变量的3种方法小结有什么看法呢?互联网品牌制作专家愿与您共同探讨!版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请加微信号oem365 举报,一经查实,本站将立刻删除。