MYSQL存储过程 游标 循环等

循环

WHILE……DO……END WHILE
REPEAT……UNTIL END REPEAT
LOOP……END LOOP
GOTO。

 

    下面首先使用第一种循环编写一个例子。函数必须要有括号

mysql> create procedure pro10()
    -> begin
    -> declare i int;
    -> set i=0;
    -> while i<5 do
    ->     insert into t1(filed) values(i);
    ->     set i=i+1;
    -> end while;
    -> end;//


存过 游标 代码编写中有不少规则,比如游标声明必须在变量之后,在handler之前
delimiter // 
create procedure test02()
 begin
 declare v_id int;
   -- 遍历数据结束标志 很重要
   DECLARE done INT DEFAULT FALSE;
   declare cur cursor  for select id from crm.t1;
  -- 将结束标志绑定到游标  很重要
  DECLARE CONTINUE HANDLER FOR NOT FOUND SET done = TRUE; 
 open cur;
 while !done do 
    fetch cur into v_id;
    update crm.t1 set col_1 = v_id*2 where id = v_id;
  end while;
  commit;
 close cur;
 end
 //

--调试存过,相当于oracle的dbms_output.put_line(); 直接select
create procedure test03()
begin
declare v_id int;
select id into v_id from t1 where id= 1;
select v_id;
end;
//


测试输出参数的存过
create procedure test04(out total int)
begin
select count(*) into total from t1;
end;

测试 call test04(@a);

create procedure test5(in v_id int , out v_remark int)
begin
select col_1 into v_remark from t1 where id = v_id;
end;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值