1、使用while
DROP PROCEDURE IF EXISTS `addstudent`;
DELIMITER ;;
CREATE PROCEDURE `addstudent`(iNum int)
BEGIN
declare vI int default 0;

start transaction;

while(vI < iNum) do
insert into student(id,name) values(vI,concat('Andy',vI));
set vI = vI+1;
end while;

commit;
END
;;
DELIMITER ;
2、使用repeat
BEGIN
declare vI int default 0;

start transaction;

repeat
insert into student(id,name) values(vI,concat('Andy',vI));
set vI = vI+1;
until vI >= iNum end repeat;

commit;
END

3、使用loop
BEGIN
declare vI int default 0;

start transaction;

label_insert: LOOP

insert into student(id,name) values(vi,concat('Andy',vi));
set vI = vI+1;
if(vI >= iNum) then
leave label_insert;
end if;

end LOOP label_insert;

commit;
END
4、考虑下面的需求,在编程语言中循环控制中有continue,如何实现continue的功能?
使用 iterate label_insert; 对于LOOP如下:
BEGIN
declare vI int default 0;

start transaction;

label_insert: LOOP

if(vI=2) then
set vI = vI+1;
iterate label_insert;
end if;

insert into student(id,name) values(vi,concat('Andy',vi));
set vI = vI+1;
if(vI >= iNum) then
leave label_insert;
end if;

end LOOP label_insert;

commit;
END

注意:对于while和repeat也是同样的道理,但是需要在while和repeat 前面增加一个标签,表示再次循环的位置,如下:
label_insert: while
label_insert: repeat
mysql中暂时没有for循环。

mysql 循环控制的更多相关文章

  1. 我的MYSQL学习心得(十) 自定义存储过程和函数

    我的MYSQL学习心得(十) 自定义存储过程和函数 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心 ...

  2. 《MySQL 存储过程编程》-读书笔记

    本书结构: 第一部分:存储编程基础 第1章:存储过程程序基础 第2章:MySQL存储编程指南 第3章:语言基础 第4章:语句块 第5章:在存储程序中使用SQL 第一章:MySQL存储程序介绍 存储程序 ...

  3. MySQL基础之第14章 存储过程和函数

    避免编写重复的语句 安全性可控 执行效率高 14.1.创建存储过程和函数 14.1.1.创建存储过程 CREATE PROCEDUREsp_name ([proc_parameter[,...]]) ...

  4. MYSQL存储过程中-流程控制语句

    存储过程中常用的流程控制 复习下存储过程内部的语法 定义存储过程体的局部变量: 定义方法:DECLARE a INT DEFAULT 100或者DECLARE   a INT ; SET a=100; ...

  5. jdbc 处理mysql procedure返回的多个结果集

    1:测试数据库表user mysql> desc user$$ +-------+-------------+------+-----+---------+----------------+ | ...

  6. 我的MYSQL学习心得(十)

    原文:我的MYSQL学习心得(十) 我的MYSQL学习心得(十) 我的MYSQL学习心得(一) 我的MYSQL学习心得(二) 我的MYSQL学习心得(三) 我的MYSQL学习心得(四) 我的MYSQL ...

  7. MySQL (九)

    1 代码执行结构 代码执行结构有三种:顺序结构.分支结构和循环结构. 1.1 分支结构 分支结构:实现准备多个代码块,按照条件选择性执行某段代码. 在MySQL中只有if分支. 基本语法 if 条件判 ...

  8. MySQL (九)-- 代码执行结构、函数、存储过程

    1 代码执行结构 代码执行结构有三种:顺序结构.分支结构和循环结构. 1.1 分支结构 分支结构:实现准备多个代码块,按照条件选择性执行某段代码. 在MySQL中只有if分支. 基本语法 if 条件判 ...

  9. MySQL自定义函数用法详解-复合结构自定义变量/流程控制

    自定义函数 (user-defined function UDF)就是用一个象ABS() 或 CONCAT()这样的固有(内建)函数一样作用的新函数去扩展MySQL. 所以UDF是对MySQL功能的一 ...

随机推荐

  1. 20145227 《Java程序设计》第1周学习总结

    20145227 <Java程序设计>第1周学习总结 教材学习内容总结 第一周学习Java首先了解了Java的历史,区分了JRE和JDK,并且学会了安装和配置环境.人机交互等基本知识,会编 ...

  2. 发送xml报文去第三方请求获取xml报文数据

    import java.io.*; import java.net.HttpURLConnection; import java.net.MalformedURLException; import j ...

  3. 八大排序算法之五--交换排序—冒泡排序(Bubble Sort)

    基本思想: 在要排序的一组数中,对当前还未排好序的范围内的全部数,自上而下对相邻的两个数依次进行比较和调整,让较大的数往下沉,较小的往上冒.即:每当两相邻的数比较后发现它们的排序与排序要求相反时,就将 ...

  4. 修改win7登录界面

    只需两步,教你将喜欢的图片在设置成开机画面.   第一步,打开注册表,Win+R->运行->Regedit.依次展开,HKEY_LOCAL_MACHINE\SOFTWARE\Microso ...

  5. poj1222 EXTENDED LIGHTS OUT

    设输入矩阵为A,输出矩阵为B,目标矩阵为C(零矩阵). 方便起见,矩阵行列下标均从1开始. 考虑A矩阵元素a(i,j),B矩阵中与其相邻的元素 b(i,j),b(i - 1, j),b(i + 1,j ...

  6. Babelfish 分类: 哈希 2015-08-04 09:25 2人阅读 评论(0) 收藏

    Babelfish Time Limit: 3000MS Memory Limit: 65536K Total Submissions: 36398 Accepted: 15554 Descripti ...

  7. Digital Roots 分类: HDU 2015-06-19 22:56 13人阅读 评论(0) 收藏

    Digital Roots Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Total ...

  8. js实现图片的瀑布流

    先看效果: 初始状态:

  9. PHP比较运算!=和!==

    PHP!=和!==的区别 !==是指绝对不等于,比如,$a = 3, $b="3" 那么,$a!==$b成立,可是$a!=$b不成立:

  10. AIM Tech Round 3 (Div. 2) A

    Description Kolya is going to make fresh orange juice. He has n oranges of sizes a1, a2, ..., an. Ko ...