PostgreSQL创建函数解读

257 阅读1分钟

需要在数据库中重复执行某个 SQL 脚本时,将其转换成函数确实是一个很好的做法。这样做有几个好处:

  • 代码重用:你可以在多个地方调用同一个函数,而不需要每次都重写相同的 SQL 代码;
  • 维护性:如果需要更改 SQL 逻辑,你只需要更新函数的定义,而不是在每个使用该脚本的地方进行更改;
  • 简化调用:函数可以简化复杂的 SQL 逻辑,使得调用变得更为直观和简单。

1、在 PostgreSQL 中创建一个简单的函数,主要功能插入一行数据,返回改行的id:

create or replace function insert_func(name text, age int4)
returns int8 as $$
declare
	p_id int8;
begin
   execute 'insert into my_table (name, age) values ( $1, $2) returning id' 
   into p_id
   using name, age;
   return p_id;
END;
$$ LANGUAGE plpgsql;

create or replace function:若创建的函数存在,则原函数被覆盖,若创建的函数不存在,则创建一个新函数;

name, age:函数的入参;

insert_func:是函数名称;

returns int8 :函数的返回值;

$$:是函数体开始和结束标志;

begin...end:包围着的函数体;

declare:声明定义局部变量

LANGUAGE plpgsql:指定了函数使用的过程语言。

2、调用函数

select insert_func('jack', 23);

3、删除函数

drop function if exists base.insert_func;

注意事项

  • 在编写复杂的函数时,可能需要考虑错误处理和事务控制;
  • 函数的性能可能受限于其编写方式和使用的SQL命令;
  • 确保在创建函数之前已经安装并启用了所需的过程语言。