首页 / MYSQL / mysql repeat
mysql repeat
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mysql repeat,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1869字,纯文字阅读大概需要3分钟。
内容图文
![mysql repeat](/upload/InfoBanner/zyjiaocheng/475/5851fa6a8e3b419d927f99bc9b3d2b77.jpg)
[begin_label:] REPEAT
statement_list
UNTIL search_condition
END REPEAT [end_label]
#例1:
CREATE PROCEDURE payment_stat ()
BEGIN
DECLARE i_staff_id int;
DECLARE d_amount decimal(5,2);
DECLARE cur_payment cursor for select staff_id,amount from payment;
DECLARE EXIT HANDLER FOR NOT FOUND CLOSE cur_payment;
set @x1 = 0;
set @x2 = 0;
OPEN cur_payment;
REPEAT
FETCH cur_payment INTO i_staff_id, d_amount;
if i_staff_id = 2 then
set @x1 = @x1 + d_amount;
else
set @x2 = @x2 + d_amount;
end if;
UNTIL 0 END REPEAT; #永远为false,依靠EXIT HANDLER触发退出
CLOSE cur_payment; #永远执行不到,依靠EXIT HANDLER执行CLOSE cur_payment
END;
#例2
CREATE PROCEDURE myProc (in_customer_id INT) //创建存储过程
BEGIN
DECLARE l_first_name VARCHAR(30);
DECLARE l_id INT;
DECLARE l_city VARCHAR(30);
DECLARE l_department_count INT;
DECLARE no_more_departments INT;
DECLARE dept_csr CURSOR FOR #游标
SELECT id,first_name, city
FROM employee;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET no_more_departments=1;
SET no_more_departments=0;
OPEN dept_csr;
dept_loop:REPEAT #repeat循环结构
FETCH dept_csr INTO l_id,l_first_name,l_city;
IF no_more_departments=0 THEN
SET l_department_count=l_department_count+1;
END IF;
select l_id,l_first_name,l_city;
UNTIL no_more_departments #通过CONTINUE HANDLER设置为TRUE
END REPEAT dept_loop;
CLOSE dept_csr;
SET no_more_departments=0;
END
mysql repeat
标签:tin lis exit first state tom begin 循环结构 sea
本文系统来源:http://www.cnblogs.com/askme/p/6364350.html
内容总结
以上是互联网集市为您收集整理的mysql repeat全部内容,希望文章能够帮你解决mysql repeat所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。