mysql循环存储

来源:互联网 发布:windows 10没远程桌面 编辑:程序博客网 时间:2024/06/15 04:03

这几个循环语句的格式如下:

WHILE…[条件]…DO…[语句]…END WHILE 

REPEAT…[语句]…UNTIL …[条件]… END REPEAT

[loop_label]:LOOP

…[语句]…

[条件] then leave [loop_label];

END LOOP


使用 while 循环:

delimiter $$//定义结束符为 $$drop procedure if exists wk;//删除 已有的 存储过程create procedure wk()//创建新的存储过程begindeclare i,a int;//变量声明set i=1;set a=2089;while i < 1000 do//循环体INSERT into user_profile (sex,nick,password) values (1,concat('我去',a),'123456');set i = i+1;set a = a+1;end while;end $$//结束定义语句//调用delimiter;//先把结束符 回复为;call wk();


delimter : mysql 默认的 delimiter是; 告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。

这里使用 delimiter 重定义结束符的作用是: 不让存储过程中的语句在定义的时候输出。

创建 MySQL 存储过程的简单语法为:

CREATE PROCEDURE 存储过程名称( [in | out | inout] 参数 )  BEGIN Mysql 语句  END


调用存储过程:

call 存储过程名称() // 名称后面要加()

连接字符

concat('我去',a)

REPEAT…[语句]…UNTIL …[条件]… END REPEAT

delimiter $$drop procedure if exists rwk;create procedure rwk()begindeclare i,a int;set i=1;set a=2089;repeatINSERT into user_profile (sex,nick,password) values (1,concat('我去',a),'<span style="font-family: Arial, Helvetica, sans-serif;">123456</span><span style="font-family: Arial, Helvetica, sans-serif;">');</span>set i = i+1;set a = a+1;until i > 10end repeat;end $$delimiter;call rwk();

[循环体名称]:LOOP

…[语句]…

[条件] then leave [循环体名称];

END LOOP


delimiter $$drop procedure if exists lwk;create procedure lwk()begindeclare i,a int;set i=1;set a=2089;loop_label:LOOPINSERT into user_profile (sex,nick,password) values (1,concat('我去',a),'123456');set i = i+1;set a = a+1;if i > 10 then leave loop_label; end if;end LOOP;end $$delimiter;call lwk();



参考文件:http://www.jb51.net/article/52251.htm

0 0