PostgreSQL存储过程(函数)
来源:互联网 发布:点购通软件 编辑:程序博客网 时间:2024/05/21 06:42
从接触分布式greenplum数据库,然后了解到其内部的原理,再熟悉postgreSQL数据库,然后学习DML,其基本的应用和SQL是一样的,基本语法就参考postgresql手册
和postgresql教程可以细细的了解一下;我这里就简单说一下存储过程。
一、首先是存储过程的格式
create [or replace] function function_name(参数逗号隔开) returns 返回值类型 as $body$declare//声明变量变量名 变量类型 :=变量值;例如:name char(20):='su';begin/*函数体;包括DML语句;特别注意:如果有返回值,要省略最后的return语句的话,则在函数体的最后必须是一个select语句且返回类型必须和上面声明的类型一样;*/return 变量名//和上面返回的变量一样;end$body$language 'plpgsql';
二、控制语句
1、if 条件(五种形式)
IF … THEN
IF … THEN … ELSE
IF … THEN … ELSE IF
IF … THEN … ELSIF … THEN … ELSE
IF … THEN … ELSEIF … THEN … ELSE(注:ELSEIF 是ELSIF 的别名)
2、循环
使用LOOP,EXIT,CONTINUE,WHILE, 和FOR 语句,可以控制PL/pgSQL 函数重复一系列命令。
1)、LOOP
[ <
4)、WHILE
[ <
5)、FOR(整数变种)
[ <
FOR i IN REVERSE 10..1 LOOP
这里可以放一些表达式
END LOOP;
如果下界大于上界(或者是在 REVERSE 情况下是小于),那么循环体将完全不被执行。而且不会抛出任何错误。
3、异常捕获
EXCEPTION
WHEN 错误码(如:STRING_DATA_RIGHT_TRUNCATION:字串数据右边被截断) THEN
/*后台打印错误信息/
RAISE NOTICE ‘错吴信息’;
三、链接运算符
在postgresql中链接运算符是:||而不是+;
四、代码示例
create or replace function f_test() returns void as $$declare begin for i in 1..1000 loop execute 'insert into test select generate_series('||(i-1)*40000+1||','||i*40000||'),(random()::float)*'||i*0.0001||',clock_timestamp()'; end loop; end;$$ language plpgsql;
0 0
- PostgreSQL存储过程(函数)
- PostgreSQL 存储过程与函数
- 使用Npgsql库调用PostgreSQL的函数(存储过程)
- 使用Npgsql库调用PostgreSQL的函数(存储过程)
- (整理)PostgreSQL 存储过程
- PostgreSQL 存储过程(六)
- SQL优化(四) PostgreSQL存储过程
- postgresQL 存储过程 编程
- PostgreSQL 存储过程调试
- PostgreSQL 存储过程
- PostgreSQL 存储过程
- postgreSQL 存储过程
- PostgreSQL 存储过程
- PostgreSQL 存储过程
- PostgreSQL 存储过程
- PostgreSQL存储过程初探
- PostgreSQL 存储过程
- PostgreSQL-存储过程
- jQuery中的DOM操作整理
- oracle hint 和 并行
- Swarm, Swarmkit 和 Swarm模式的比较
- 收藏哎哎哎
- apache、nginx正向代理与反向代理的区别
- PostgreSQL存储过程(函数)
- LeetCode 46 Permutations (全排列)
- 进程地址空间分布
- CSS颜色---RGB、HSL、Hex 网页色彩码
- jquery 获取url及url参数的方法
- spring文件头解析
- mysql笔记2 常用命令
- 推送
- 2016年公司中开发中常用的Swift和iOS开源框架