這幾個循環語句的格式如下:
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();