mysql循环存储

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

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()	//创建新的存储过程
begin
declare 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()
begin
declare i,a int;
set i=1;
set a=2089;
repeat
	INSERT 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 > 10

end repeat;
end $$

delimiter;
call rwk();

[循环体名称]:LOOP

…[语句]…

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

END LOOP


delimiter $$
drop procedure if exists lwk;
create procedure lwk()
begin
declare i,a int;
set i=1;
set a=2089;

loop_label:LOOP
	INSERT 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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章