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

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