16.12.1 在存储过程中使用游标
1.创建带有游标的存储过程
创建一个名称为StatisticsPrice的存储过程,该存储过程接收一个DECIMAL(10,2)类型的输出参数totalprice,使用游标对t_goods表中查询出的价格数据进行循环处理,累加商品价格信息到totalprice变量。判断循环结束的条件是捕获NOT FOUND状态,当游标找不到下一条记录时,程序会关闭游标并退出存储过程。
创建存储过程,在MySQL命令行中执行代码。
mysql> DELIMITER $$
mysql> CREATE PROCEDURE StatisticsPrice(OUT totalprice DECIMAL(10,2))
-> BEGIN
-> DECLARE price DECIMAL(10,2) DEFAULT 0.00;
-> DECLARE cursor_price CURSOR FOR SELECT t_price FROM t_goods
-> DECLARE EXIT HANDLER FOR NOT FOUND CLOSE cursor_price;
-> SET totalprice = 0.00;
-> OPEN cursor_price;
-&g