Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2877509
  • 博文数量: 471
  • 博客积分: 7081
  • 博客等级: 少将
  • 技术积分: 5369
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-04 21:55
文章分类

全部博文(471)

文章存档

2014年(90)

2013年(69)

2012年(312)

分类: Mysql/postgreSQL

2012-03-22 12:10:18

MySQL存储过程的语句中有三个标准的循环方式:WHILE循环,LOOP循环以及REPEAT循环。

  1. create procedure pro11(IN t int)
  2. begin
  3.      declare i int default 0;
  4.      repeat
  5.             insert into fangwenliang(id,count) VALUES(null,i);
  6.             set i=i+1;
  7.             until i>t
  8.      end repeat;
  9. end
  10. call pro11(10)

  11. create procedure pro11(IN t int)
  12. begin
  13.      declare i int default 0;
  14.      while i<t do
  15.             insert into fangwenliang(id,count) VALUES(null,i);
  16.             set i=i+1;
  17.      end while;
  18. end
  19. call pro11(10)

  20. create PROCEDURE pro11(IN t int)
  21. begin
  22.      declare i int default 0;
  23.      loop_lable:loop
  24.             insert into fangwenliang(id,count) VALUES(null,i);
  25.             set i=i+1;
  26.             if i>=t then
  27.                leave loop_lable;
  28.             end if;
  29.      end loop;
  30. end
  31. call pro11(10)
1、在这个例子中,INSERT和SET语句在WHILE和END WHILE之间,当变量i大于等于传入的参数t的时候就退出循环。使用set i=0;语句是为了防止一个常见的错误,如果没有初始化,i默认变量值为NULL,而NULL和任何值操作的结果都是NULL。
2、这个REPEAT循环的功能和前面WHILE循环一样,区别在于它的执行后检查是否满足循环条件(until i>=t),而WHILE则是执行前检查(while i<5 do)。不过要注意until i>=5后面不要加分号,如果加分号,就是提示语法错误。
3、还有一种非标准的循环方式:GOTO,不过这种循环方式最好别用,很容易引起程序的混乱
阅读(783) | 评论(0) | 转发(0) |
0

上一篇:mysql 性能优化

下一篇:mysql游标经典实例1

给主人留下些什么吧!~~