函数(存储过程)

PostgreSQL函数也称为PostgreSQL存储过程。 PostgreSQL函数或存储过程是存储在数据库服务器上并可以使用SQL界面调用的一组SQL和过程语句(声明,分配,循环,控制流程等)。 它有助于您执行通常在数据库中的单个函数中进行多次查询和往返操作的操作。

它就相当于 数据库的函数。 可以传入参数。然后在函数体里面 有逻辑语句(循环 判断等) 然后计算后 可以返回结果

CREATE [OR REPLACE] FUNCTION function_name (arguments) 
RETURNS return_datatype AS $variable_name$
  DECLARE declaration;
  [...]
  BEGIN 
    < function_body >
    [...]
    RETURN { variable_name | value }
  END;
LANGUAGE plpgsql;
Code language: HTML, XML (xml)

下面示例代码片段

declare       
  total integer;   
BEGIN      
  SELECT count(*) into total FROM student;      
  RETURN total;   
END;
Code language: PHP (php)

运行示例:

CREATE OR REPLACE FUNCTION get_student_count() 
RETURNS integer AS $total$
declare       
  total integer;   
BEGIN      
  SELECT count(*) into total FROM student;      
  RETURN total;   
END;
LANGUAGE plpgsql;

调用函数:

select get_student_count();

笔记要点:

  1. CREATE OR REPLACE:函数不存在就新建,存在就覆盖修改。
  2. DECLARE:用来声明变量。
  3. INTO:把查询结果存入变量。
  4. LANGUAGE plpgsql:指定使用plpgsql过程语言,可以写判断、循环。
  5. PostgreSQL里函数function和存储过程procedure有区别:function有返回值,可以直接在select里面调用;procedure用call调用,没有return返回值。

Previous:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注