您的位置:首页 > 数据库 > MySQL

mysql循环存储

2016-04-29 18:49 513 查看
这几个循环语句的格式如下:

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();


参考文件:/article/1240775.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: