你可以将Postgres函数作为远程过程调用(Remote Procedure Calls)来调用,即你可以从任何地方执行数据库中的逻辑。 函数在逻辑很少更改时非常有用,比如用于密码重置和更新等情况。

下面是一个示例的 Postgres 函数定义:

  create or replace function hello_world() returns text as $$
  select 'Hello world';
$$ language sql;
  

这个函数叫做hello_world,它不带参数,返回一个text类型的结果。函数的逻辑很简单,就是返回字符串"Hello world"。 你可以从任何地方调用这个函数,并获得结果"Hello world"

案例教程

案例1 (调用一个没有参数的Postgres函数)

案例2 (调用一个带参数的Postgres函数)

案例3 (批量处理)

案例4 (调用带有过滤器的Postgres函数)

参数说明

  • fn [必要参数] FunctionName类型

    要调用的函数名称

  • args [必要参数] object类型

    传递给函数调用的参数

  • 选项(option) [必要参数] object类型

    命名的参数

      特性
    • count [可选参数] exact | planned | estimated

      用来计算更新行的计数算法。函数返回的行数。只适用于返回集合的函数

      exact:可以精确计算行数,但执行速度较慢。执行 “COUNT(*)“操作。

      planned:可以快速计算行数,但是结果可能略有偏差。使用了Postgres的统计数据。

      estimated:对于较小的数值使用精确计数,对于较大的数值使用计划计数。根据行数的大小决定使用精确计数或计划计数的算法。

    • head [可选参数] boolean类型

      当设置为 “true “时,“data “将不被返回。 如果你只需要计数,则很有用。

参考资料