delimiter $$// 定义结束符为 $$
创新互联公司专业为企业提供资兴网站建设、资兴做网站、资兴网站设计、资兴网站制作等企业网站建设、网页设计与制作、资兴企业网站模板建站服务,10多年资兴做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。
drop procedure if exists wk; // 删除 已有的 存储过程
create procedure wk()// 创建新的存储过程
begin
declare i int;// 变量声明
set i = 1;
while i 11 do // 循环体
insert into user_profile (uid) values (i);
set i = i +1;
end while;
end $$ // 结束定义语句
// 调用
delimiter ;// 先把结束符 回复为;
call wk();
delimter : mysql 默认的 delimiter是; 告诉mysql解释器,该段命令是否已经结束了,mysql是否可以执行了。
IF i = 3 THEN
set i=i+3;
ELSEIF i = 4 THEN
set i=i+4;
ELSE
set i=i+5;
END IF;
case i = 3 then
set i=i+3;
case i = 4 then
set i=i+4;
end
MySQL是不支持for循环语句的,MySQL支持while循环、repeat循环、loop循环 1.while循环 delimiter // #定义标识符为双斜杠 drop procedure if exists test; #如果存在test存储过程则删除 create procedure test() #创建无参存储过程,名称为test begin declare i int; #申明变量 set i = 0; #变量赋值 while i 10 do #结束循环的条件: 当i大于10时跳出while循环 insert into test values (i);
declare storeId varchar(10);
在存储过程中创建游标,这个游标里面存了你所有要循环的数据,集合:
declare diy_cursor cursor for
select store_id from t_b_store;
open diy_cursor;--打开游标
diy_loop:loop ---这里开始循环
FETCH diy_cursor into storeId; --提取本次循环的数据,保存在storeId中
if done = 1 then --done是在存储过程开始的时候定义的一个整形变量
leave diy_loop;---如果游标中的数据提取完毕,就自动跳出这个循环end if;
----在这里用你循环取到的storeId做你想做的事情,就是写你的sql啦---
end loop; --循环结束
close diy_loop; --关闭游标