使用Postgresql怎么自定义一个函数

  介绍

本篇文章为大家展示了使用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怎么自定义一个函数