mysql存储过程简介
创建存储过程
CREATE PROCEDURE productpricing(
OUT pl DECIMAL(8,2),
OUT ph DECIMAL(8,2),
OUT pa DECIMAL(8,2)
)
BEGIN
SELECT Min(prod_price)
INTO pl
FROM products;
SELECT Max(prod_price)
INTO ph
FROM products;
SELECT Avg(prod_price)
INTO pa
FROM products;
END;
执行存储过程
CALL productpricing(@pricelow,
@pricehigh,
@priceaverage);
查看结果
SELECT @pricehigh, @pricelow, @priceaverage;
删除存储过程
DROP PROCEDUCE productpricing;
有IN和OUT参数的例子
CREATE PROCEDURE ordertotal(
IN onumber INT,
OUT ototal DECIMAL(8,2)
)
BEGIN
SELECT Sum(item_price*quantity)
FROM orderitems
WHERE order_num = onumber
INTO ototal;
END;
执行
CALL ordertotal(20005, @total);
查看
SELECT @total;
不像多数DBMS,MySQL游标只能用于存储过程(和函数)
创建游标
CREATE PROCEDURE processorders()
BEGIN
DECLARE ordernumbers CURSOR
FOR
SELECT order_num
FROM orders;
END;
打开游标
OPEN ordernumbers;
实践是检验真理的唯一标准,是骡子是马拉出来溜溜。
一把这些代码输进去,发现不对。
DELIMITER //
CREATE PROCEDURE peopleage(
OUT pl DECIMAL(8,2),
OUT ph DECIMAL(8,2),
OUT pa DECIMAL(8,2)
)
BEGIN
SELECT MIN(age)
INTO pl
FROM people;
SELECT MAX(age)
INTO ph
FROM people;
SELECT AVG(age)
INTO pa
FROM people;
END;
//
DELIMITER ;
注:需要用DELIMITER来作为开始结束
最新文章
- shell中$0,$?,$!等变量意义
- make file教程(转)
- su - root 报su: incorrect password的错误
- 写给已有编程经验的 Python 初学者的总结【转】
- DataSet筛选数据然后添加到新的DataSet中引发的一系列血案
- HTML表单元素Emil和密码
- python入门,猜数
- 慕课网-安卓工程师初养成-3-4 Java中的比较运算符
- Python 获取学校图书馆OAPC账号对应的身份证号码
- Tomcat处理HTTP请求源码分析(下)
- js获取返回首页
- 每天一个Linux命令(11)--nl命令
- iOS中 UIToolBar 技术分享
- [转帖]Linux下fork函数及pthread函数的总结
- cJSON填坑记
- JVM解释器和编译器
- Toy Factory
- CentOS7安装配置Bacular
- QT_QSlider的总结
- Swift 互斥锁写法
热门文章
- Objective-C学习笔记-第一天(3)
- php中json_encode UTF-8中文乱码问题
- wireshark使用方法(学习笔记一)
- SVG 2D入门12 - SVG DOM
- WCF 服务器调用回调函数 单程-双程操作模式:(待补充Demo)
- addslashes() 函数和stripslashes()函数
- error CS0103: 当前上下文中不存在名称“ViewBag”
- CI整合Smarty
- Valgrind的多线程调试工具
- gradle 本地 配置