MySQL流程控制之while、repeat、loop循环实例分析
今天小编给大家分享一下MySQL流程控制之while、repeat、loop循环实例分析的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。
前言
循环是一段在程序中只出现一次,但可能会连续包括运行控制多次的实例分析代码。
循环中的用法工作流程代码会运行特定的次数,mysql流程控制语句包括循环语句,或者是完整性运行到特定条件成立limit时运行机制结束循环。
循环分类:
while
repeat
loop
循环控制:
leave 类似于 break,跳出参照,结束当前所在的循环操作过程
iterate类似于 continue,继续,结束本次循环,继续下一次
while循环
【标签用法:】while 循环条件完整性完整性 do 循环体流控出错控制; end while【 标签】;
--定义 创建测试sql表循环 create table user ( uid int primary_key, username varchar ( 50 ), password varchar ( 50 ) );
-- -------包括存储语句过程-while delimiter $$ create procedure proc16_while1(in insertcount int) begin declare i int default 1; label:while i<=insertcount do insert into user(uid,username,`password`) values(i,concat('user-',i),'123456'); set i=i+详解事务1; end while label; end $$ delimiter ; call proc16_while(10);
存储过程语法是固定的:delimiter $$ create peocedure 循环名执行流程(参数)begin 代码 end $$ delimiter;
注意参照在写循环体监控的时候结构,必须要要有定义循环的初识变量,采用declare i int default 默认值
然后就是dlabel:while 判断条件 do 循环体 end while label; end && 必须要有中
-过程- --流控-----存储过程-while +操作 leave truncate table user; delimiter $$ create procedure proc16_while2(in insertcount int) begin declare i int default 1; label:while i<=insertcount do insert into user(uid,username,`password`) values(i,concat('user-',i),'123456'); if i=5 then leave label; end if; set i=i+1; end while label; end $$ delimiter ; call proc16_while2(10);
如果在内部需要跳出循环的话事务,采用whileif 判断 ,但是最后需要end if 结尾函数
这里的leave就是 跳出结构语句循环,mysql流控,相对于break
--结构 -------存储工作流程过程-while+iterate truncate table user; delimiter $$ create procedure proc16_while3(in insertcount int) begin declare i int default 1; label:while i<=insertcount do set i=i+1; if i=5 then iterate label; end if; insert into user(uid,username,`password`) values(i,concat('user-',mysql参照完整性实现方法,mysql事务执行流程,i),'123456'); end while label; end $$ delimiter ; call proc16_while3(10);
这里的iterate 相对于continue 遇到就不执行执行下面的代码
repeat循环
repeat 循环体; until 条件参照表达式 end repeat [标签计划];
-- -------存储过程定义-循环控制-repeat use mysql7_procedure; truncate table user; delimiter $$ create procedure proc18_repeat(in insertCount int) begin declare i int default 1; label:repeat insert into user(uid, username, password) values(i,concat('user-',i),'123456'); set i = i + 1; until i > insertCount end repeat label; select '循环结束流控'; end $$ delimiter ; call proc18_repeat(100);
这个相对于是,无论如何都会执行一次的循环,然后是在内部进行判断计划,如果满足了就直接跳出
loop循环
loop 循环loop体函数MySQL; if 条件方法表达式执行 then leave [标签]; end if; end loop;
--过程 -------存储过程-循环loop控制-loop truncate table user; delimiter $$ create procedure proc19_loop(in insertCount int) begin declare i int default 1; label:loop insert into user(uid, username, password) values(i,mysql监控设置详解,concat('user-',i),'123456'); set i = i +操作 1; if i > 5 then leave label; end if; end loop label; select '循环结束'; end $$ delimiter ; call proc19_loop(10);
这个和repeat不同的是运行机制,需要执行之后,利用详解leave 跳出循环,无论是MySQL使用哪种都可以达到我们需要的效果,但函数是在业务中的应用场景,while还是相对比较的多。
以上就是“MySQL流程控制之while、repeat、loop循环实例分析”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果控制还想学习更多的知识,请关注蜗牛博客行业资讯频道,mysql sql执行流程。
免责声明:本站发布的内容(图片运行机制MySQL、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
评论