创建存储过程更新表字段




CREATE   PROCEDURE  updateStudent(IN  intime  varchar(20))

BEGIN
DECLARE  stuid  int;
DECLARE  syear  int;
DECLARE b int default 0; #终止循环  
declare cur cursor for select tid,student_year  from table_test where  input_time<intime;
#这把游标异常后捕捉并设置循环使用 变量b为1跳出循环。
declare continue handler for not found set b = 1;

/*开游标*/
OPEN cur;
/*游标向下走一步,将查询出来的值付给定义的变量*/
FETCH cur INTO stuid,syear;
#有多少处理多少,直到没有数据为止
while b<>1 do
      case syear
            when  11  then
            update table_test set student_year=1 where tid=stuid;
            when   1  then  
            update table_test set student_year=2 where tid=stuid;
            when   2  then
            update table_test set student_year=3 where tid=stuid;
            when   3  then
            update table_test set student_year=4 where tid=stuid;
            when   4  then
            update table_test set student_year=5 where tid=stuid;
            when   5  then
            update table_test set student_year=6 where tid=stuid;
            when   6  then
            update table_test set student_year=7 where tid=stuid;
            when   7  then
            update table_test set student_year=8 where tid=stuid;
            when   8  then
            update table_test set student_year=9 where tid=stuid;
            when   9  then
            update table_test set student_year=10 where tid=stuid;
            when   10  then
            update table_test set student_year=10 where tid=stuid;
            ELSE
            update table_test set student_year=1 where tid=stuid;
            end case;
      FETCH cur INTO stuid,syear;
end while;
close cur;
end;

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值