本篇文章为大家展示了使用Postgresql怎么自定义一个函数,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
Postgresql函数也称为Postgresql存储过程。Postgresql函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。
语法:
CREATE (或替代),FUNCTION function_name (参数),, RETURNS return_datatype  AS variable_name美元, ,DECLARE ,,声明; […],才能 ,BEGIN ,,& lt; function_body 祝辞, […],才能 {RETURN 才能;variable_name |, value }, ,结束;LANGUAGE plpgsql;
参数说明
function_name:指定函数的名称。
(或更换):是可选的,它允许修改/替换现有函数。
声明:定义参数(参数名写在前面类型写在后面)。
开始~结束:在中间写方法主体。
返回:指定要从函数返回的数据类型(它可以是基础,复合或域类型,或者也可以引用表列的类型)。
语言:它指定实现该函数的语言的名称。
下面我将创建一个简单的函数:
CREATE 或是REPLACE FUNCTION 测试(id uuid) RETURNS 整数 LANGUAGE plpgsql 作为 $ $ 声明 ,count 整数; 开始 count =,(选择 ,,,,,,json_array_length (A.json: json →, & # 39;特征# 39;) ,,,,,得到“Json"一个 ,,,,,WHERE A.uid =, id); ,return 计算; 结束; , $ $
该函数的功能是用来返回json中数组的长度的
定义好该函数后,我们可以像调用其他的函数一样调用它
选择test (id)
引用>返回数组长度(整数)
<>强补充:PostgreSQL中自定义函数(函数)返回数据集强>
1。准备数据
建表
, create table city ( cityId int,大敌; ,cityName varchar (20) 之前,);>插入数据
插入城市值(1 & # 39;北京# 39;),(2,& # 39;纽约# 39;),(3 & # 39;香港香港# 39;),(4日& # 39;ShaingHai& # 39;);
引用>2。函数实例
<强> 2.1套表名强>
创建函数getCity(),它返回城市表中所有的数据,返回值声明为套表名。
create 或是replace function getCity (), returns setof city as $ $ 开始 return query  select *,得到城市; 结束; $ $ language plpgsql;执行函数。
mydb=#, select getCity (); getcity。才能 ----------------- ,(北京) 纽约,(2) ,(3“Hong kong") ShaingHai, (4) (4,行记录)也可以用类似查询表的方式。
mydb=#, select *,得到getCity (); ,cityid | cityname - - - - - - - - - - + - - - - - - - - - - - - ,,1,|,北京 ,,,2,|纽约 ,,3,|,Hong 香港 ,,4,| ShaingHai (4,行记录)PostgreSQL还支持对函数执行结果进行条件判断并过滤。
mydb=#, select *,得到getCity (), where cityId 祝辞,3; ,cityid | cityname - - - - - - - - - - + - - - - - - - - - - - - ,,4,| ShaingHai (1,行记录)<强> 2.2套记录强>
为了使函数更加通用,以解决动态返回数据集的问题。创建函数getRows(文本),将表名城市作为函数参数,它返回表中所有的数据,返回值声明为套纪录。
create 或是replace function getRows(文本),returns setof record $ $ 声明 rec 记录; 开始 for rec  EXECUTE 拷贝;& # 39;select *,得到& # 39;,| |,1美元,循环 return next 娱乐; 最终获得;循环; 返回; 结束 $ $ language & # 39; plpgsql& # 39;;执行函数。
mydb=#, select *,得到getRows(& # 39;城市# 39;),as 城市(id , int, name varchar (20)); ,id |,名字 ----+----------- ,1 |北京 ,2 |纽约 ,3 | Hong 香港 ,4 | ShaingHai (4,行记录)上述内容就是使用Postgresql怎么自定义一个函数,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
使用Postgresql怎么自定义一个函数