PostgreSQL存储过程
创建存储过程(真正存储过程procedure)
存储过程和函数的区别:
存储过程无需return返回值,函数必须有return返回值,
存储过程可以使用事物,函数中无法使用事物,
create table accounts(id serial primary key,name varchar(50) not null,account numeric
);insert into accounts values (1,'Tom','9000'),(2,'Jerry','9000');select * from accounts;
创建存储过程语法:
create or replace procedure 存储过程名(param_list)
language plpgsql
as $$declare 变量名 type [default value];beginsql_statement;commit;end;
$$; -- 分号可要可不要
举例:
create or replace procedure transfer(id1 int,id2 int,num numeric)
language plpgsql
as $$beginupdate accounts set account=account-num where id = id1;update accounts set account=account+num where id = id2;commit; --提交事务end;$$
或:
create or replace procedure transfer(int,int,numeric)
language plpgsql
as $$beginupdate accounts set account=account-$3 where id = $1; --$1表示第一个参数update accounts set account=account+$3 where id = $2; --$3表示第三个参数commit; --提交事务end;$$
调用存储过程:
call transfer(1,2,1000);
PostgreSQL存储过程相关推荐
- Mybatis调用PostgreSQL存储过程实现数组入参传递
前言 项目中用到了Mybatis调用PostgreSQL存储过程(自定义函数)相关操作,由于PostgreSQL自带数组类型,所以有一个自定义函数的入参就是一个int数组,形如: CREATE OR ...
- postgreSQL存储过程写法示例
转载自:http://panyongzheng.iteye.com/blog/2194815 PostgreSQL的存储过程简单入门 http://blog.csdn.net/rachel_luo/a ...
- 数据库之postgreSQL存储过程写法示例
PostgreSQL的存储过程简单入门 [url]http://blog.csdn.net/rachel_luo/article/details/8073458[/url] 存储过程事物 [url]h ...
- postgresql存储过程输出参数
postgresql中存储过程输入输出 postgresql不区分存储过程和函数,即这两个是一个东西.存储过程通常用于比较复杂的操作中. 创建存储过程时 create (or replace) fun ...
- 润乾数据集调用postgresql存储过程
postgresql库本身没有存储过程,是通过函数方式实现,润乾调用该库中存储过程实际上是调用该库的函数,使用方法如下: 1:postgresQL数据库的数据源链接: 将数据库类型更改为POSTGRE ...
- PostgreSQL存储过程-批量新增周末到节假日
步骤分析: 1.定义所需变量,含义详见注释 2.赋初值,删除即将新增的数据(避免重复新增周末) 3.计算开始时间所在的周日(第一个),若周六在开始之前再往下查七天 4.循环执行,若下一个周日在结束日期 ...
- postgresql存储过程基本语法
create table accounts( id serial primary key, name varchar(50) not null, account numeric ); insert i ...
- PostgreSQL 存储过程(函数)创建和基本语法
PostgreSQL官方文档 http://www.postgres.cn/docs/10/index.html Postgresql过程语言官方文档 http://www.postgres.cn/d ...
- PostgreSql存储过程模板(PROCEDURE )
PROCEDURE 语法 CREATE [ OR REPLACE ] PROCEDUREname ( [ [ argmode ] [ argname ] argtype [ { DEFAULT | = ...
最新文章
- python大家都会吗_一篇告诉你为什么人人都应该学点Python?
- 攻防世界(Pwn) forgot---栈溢出;(方法一)
- 数据可视化实现技术(canvas/svg/webGL)
- 三分钟学会.NET Core Jwt 策略授权认证
- html5 canvas获取坐标,HTML5 canvas坐标
- 湖南计算机软件水平考试,2021年湖南省计算机软考职称考试 网络工程师 信息系统项目管理师报名考试...
- 最好用的 7 款 Vue 3 富文本编辑器
- 按键精灵手机助手旋转验证码上传插件
- python itchat库学习笔记 + 微信防撤回实现详解(超详细)(已上传)
- 无线路由器网络安全设置的九种方法
- 一个页面中有两个iframe
- 在虚拟机上部署discuz论坛系统
- 1927年12月31日午夜一秒谜案
- 基于模板方法+协调者委托对现有冗余代码的改造案例
- #神仙见了会流泪之#getElementsByTagName的用法
- D2FQ: Device-Direct Fair Queueing for NVMe SSDs
- 仿射变换的一个练习题!
- 安装谷歌浏览器步骤:
- subprocess.Popen()
- C语言~宏操作大全(宏定义、内置宏、__FILE__、__LINE__、##用法)
热门文章
- 济南电信dns服务器未响应,网页打不开?DNS解析失败?DNS服务器未响应?
- 青春不死,只是凋零——悼念汪国真老师
- 支付中心“收银台“设计方案
- ubuntu 安装deb文件的安装方法
- 《欧美剧集观看最佳索引》(US SHOWS GUIDE) 【2005-12-27 转verycd】
- Tcp通信中服务器处理客户端意外断开!
- 花旗:鉴于容联云CC业务的增长,维持容联云“买入”评级
- 目标检测之YOLO_v1解读
- 美国科技大亨换儿子血浆实现“永葆青春”?
- C#TCP简单异步通信