PostGreSQL存储过程
1 返回结果集的存储过程
-- drop FUNCTION getall();
CREATE or REPLACE FUNCTION getall()
RETURNS SETOF users AS
$BODY$
SELECT * from users;
$BODY$
language SQL; -- 这里使用的SQL
2 返回单个数值的的存储过程
-- drop FUNCTION adduser2(CHARACTER VARYING);
CREATE or REPLACE FUNCTION adduser2(usernamezll varchar)
RETURNS int2 AS
$body$
BEGIN
insert into users(username) VALUES(usernamezll);
RETURN 5;
end
$body$
language plpgsql; -- 这里使用的是plpgsql
3 返回表联查的结果集
-- 先创建一个表联查之后的符合类型,将此类型作为函数的返回类型
CREATE TYPE fenshu_u as (id int,kemu VARCHAR,fenshu int,userid INT,username VARCHAR);
CREATE function getfenshu() RETURNS SETOF fenshu_u AS
$$
declare
rec fenshu_u%rowtype;
BEGIN
for rec in SELECT t2.*,t1.username from fenshu as t2 LEFT JOIN users t1 on t2.userid=t1.id WHERE t2.userid>10 loop
return next rec;
end loop;
return;
END
$$ LANGUAGE plpgsql;
PostGreSQL存储过程的更多相关文章
- Postgresql 存储过程调试 1
看来人真的有些力不从心,半个月前还很得意掌握的简单的Postgresql 存储过程的调试,一段时间没使用,做新功能就忘了! Postgresql 在开源的数据库里面算是很强悍的了,但现在就是不方便调试 ...
- Mybatis调用PostgreSQL存储过程实现数组入参传递
注:本文来源于 < Mybatis调用PostgreSQL存储过程实现数组入参传递 > 前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于Pos ...
- 调用PostgreSQL存储过程,找不到函数名的问题
PostgreSQL的表,函数名称都是严格区分大小写的,所以在使用的时候没有注意大小写问题容易导致找不到函数名的错误,但最近两天我们发现,如果函数参数使用了自定义的数据类型,也会发生这个问题. 问题描 ...
- postgresql 存储过程动态更新数据
-- 目标:动态更新表中数据 -- 老规矩上代码-----------------------------tablename 表名--feildname 字段名数组--feildvalue 字段值数组 ...
- PostgreSQL存储过程<转>
原创文章,转载请务必将下面这段话置于文章开头处(保留超链接).本文转发自Jason’s Blog,原文链接 http://www.jasongj.com/2015/12/27/SQL4_存储过程_St ...
- PostgreSQL存储过程(2)-基于PL/PgSQL的存储过程
介绍 PL/pgSQL 是PostgreSQL 数据库系统的一个可加载的过程语言. PL/pgSQL 的设计目标是创建一种可加载的过程语言,可以 用于创建函数和触发器过程, 为SQL 语言增加控制结构 ...
- PostgreSQL 存储过程/函数
1.有用的链接 postgresql 常用小函数 Postgresql数据库的一些字符串操作函数 PostgreSQL function里面调用function PostgreSQL学习手册(函数和操 ...
- postgresql 存储过程动态插入数据 2
最近学习postgresql,正一个小活要用上,所以就开始学习了!然而,学习的过程极其艰辛,但却也充满了乐趣. 一般来说数据库的操作不外如何增,删,改,查,而首要的就是要添加数据到数据库中,因为以前的 ...
- Postgresql存储过程调试:PostgreSQL 之 Function NOTICE
转载自http://zhenghaoju700.blog.163.com/blog/static/13585951820116782843994/ 先安装一个PostgreSQL(见补充知识) 比较O ...
随机推荐
- <<敏捷开发>>读书笔记
1.走进敏捷 * 组织成功 增加业务专家,较少bug和测试的交流成本,即使取消不好的技术 首先发布最有价值的特性,时常发布新的版本,即使改进软件 * 技术成功 结对编程,代码审核,确保同一份代码有不同 ...
- 利用docker搭建rtmp服务器(1)
以后的项目里面可能需要用到直播,所以就先看看 本来想在自己MAC上搭建nginx的,后来怕把自己的机子搞乱,刚好就学习了下docker,感觉docker强大就在于是一个操作系统软件的版本管理系统,可以 ...
- smarty中如何统计数组的个数?
在做web前端中,很多人会遇到在smarty中如何统计数组的个数,其实很简单 比如数组$array 你只需要用{$array|@count}就可以获取.
- Paxos一致性算法
分布式系统的整体思路:协调者与参与者 分布式系统中,每个节点可以知道自己在事务操作过程中是成功还是失败,但无法获取其他节点的操作结果,所以就不知道这个事务是否在所有机器上全都执行成功,所以需要引入一个 ...
- SQL Server 2008 数据库镜像部署实例之一 数据库准备
SQL Server 2008 数据库镜像部署实例之一 数据库准备 一.目标 利用Sql Server 2008 enterprise X64,建立异步(高性能)镜像数据库,同时建立见证服务器实现自动 ...
- 3、Linux 获取帮助的方法-关机命令-7个系统启动级别
1.获取帮助的方法: (1).命令 -h 或--help (2).man man 命令 --->/user 查看user选项 /选项 ---->n 查看下一项 2.关机命令 (1).sh ...
- CRM Xrm.Page 的对象层次结构
- Jmeter安装
安装下载方法:http://www.jb51.net/softjc/266834.html 下载地址:http://jmeter.apache.org/download_jmeter.cgi Wind ...
- (String)151. Reverse Words in a String
Given an input string, reverse the string word by word. For example,Given s = "the sky is blue& ...
- shell字符串判空
主要用到两个命令 -n -z if [ -n "$PID" ]; then echo "PID is not empty" fi if[ -z "$ ...