您的位置:首页 > 数据库 > MySQL

存储过程初步学习

2017-08-22 23:50 155 查看
最近因为需要用到了存储过程,简单介绍一下存储过程。先上一个demo

drop procedure wsy_test;

DELIMITER //

create procedure wsy_test()
begin
DECLARE  no_more_products, prd_code int default 0; -- 定义变量

DECLARE  cur_product CURSOR FOR select id from check_label; -- 定义游标,数据用查询语句填充
DECLARE  CONTINUE HANDLER FOR NOT FOUND  SET  no_more_products = 1; -- 定义游标的异常处理

OPEN  cur_product;
FETCH  cur_product INTO prd_code;

while no_more_products!=1 do
select label_name into @display from check_label where id=prd_code;
select @display;
update check_label l set val=val+100 where l.id=prd_code;
FETCH  cur_product INTO prd_code;
end while;
end
//

DELIMITER ;

call wsy_test;


存储过程中最重要的概念是游标,而对于有java基础的人来说游标很好理解,就是一个迭代器。如下代码:

DECLARE  cur_product CURSOR FOR select id from check_label;


select id from check_label 获得一个集合,而cur_product 就是一个迭代器。通过这个方式可以对一个集合进行遍历。此处和java迭代器不同的是,游标一次只能标记一个属性。所以没法一次获得所有需要的属性,需要在while循环中通过主键id再取一次~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  存储过程 mysql