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. MFC中的CDC,CClientDC,CPaintDC,CWindowDC的区别

    转自 http://blog.csdn.net/guoquan2003/article/details/4534716 CDC是Windows绘图设备的基类. CClientDC:(1)(客户区设备上 ...

  2. java中几种常见字符集与乱码介绍

    1.  ASCII和Ansi编码 字符内码(charcter code)指的是用来代表字符的内码 .读者在输入和存储文档时都要使用内码,内码分为  单字节内码 -- Single-Byte chara ...

  3. 过滤器Filter(拦截jsp页面的跳转)案例:

    创建一个 Filter , class类: 其继承于 接口 Filte(接口导包:import javax.servlet.Filter;) 在 web.xml 文件中配置并映射该 Filter. 其 ...

  4. Codeforces Round #336 Zuma

    D. Zuma time limit per test:  2 seconds memory limit per test:  512 megabytes input:  standard input ...

  5. Fishnet(暴力POJ 1408)

    Fishnet Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 1911   Accepted: 1227 Descripti ...

  6. 修改datagridview中其中一列的值

    控件.rows[0].cells['名'].value = 值

  7. 基于clahe的图像去雾

    基于clahe的图像去雾     通过阅读一些资料,我了解到clahe算法对图像去雾有所价值,正好opencv中有了实现,拿过来看一看.   但是现在实现的效果还是有所差异 #);    clahe] ...

  8. Uva 10003,切木棍

    题目链接:https://uva.onlinejudge.org/external/100/10003.pdf 题意: L长的木棍,给n个切割点,切成n+1部分,每次切割的时候的费用等于切割时的长度. ...

  9. SVG 是什么?

    SVG 意为可缩放矢量图形(Scalable Vectors Graphics).   SVG 图形在放大或者改变尺寸的情况下,其图形的质量不会有所损失.   SVG 使用 XML 格式定义图形.   ...

  10. webkit和xcode

    一.webkit下载地址:https://svn.webkit.org/repository/webkit/ 它的总大小为2.75G 二.xcode下载地址:http://adcdownload.ap ...