PostgreSQL的存储过程初探

来源:互联网 发布:网络歌手家家 编辑:程序博客网 时间:2024/05/29 15:39

什么是存储过程, 百度百科是这么定义的:存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。

Postgresql的存储过程语法结构如下:

<pre name="code" class="sql">CREATE OR REPLACE FUNCTION 函数名(参数1,[整型 int4, 整型数组 _int4, …])
RETURNS 返回值类型 AS$BODY$DECLARE变量声明BEGIN函数体END;$BODY$LANGUAGE ‘plpgsql’ VOLATILE;

下面的例子是要调用一个存储过程自动创建对应的一系列表:

<pre name="code" class="sql">CREATE OR REPLACE FUNCTION create_table_for_client(id int)  RETURNS integer AS$BODY$DECLARE  num int4 := 0;  sql "varchar";BEGIN  sql := 'create table _' || id || '_company(id int, name text)';  EXECUTE sql;
  sql := 'create table _' || id || '_employee(id int, name text)';  EXECUTE sql;
  sql := 'create table _' || id || '_sale_bill(id int, name text)';  EXECUTE sql;
  ....... 
  return num;
END;
$BODY$ LANGUAGE plpgsql VOLATILE




0 0
原创粉丝点击