存储过程 练习一利用存储过程更新数据

为某部门(需指定)的人员涨薪100,如果是公司总裁,则不涨薪。

delimiter //
create procedure high_sal(in dept_name varchar(32))
begin 
    declare e_no int;
    declare e_name varchar(32);
    declare s_sal decimal(7,2);

    declare lp_flag boolean default true;

    declare emp_cursor cursor for
        select e.empno,e.ename,e.sal
        from emp e,dept d
        where e.deptno = d.deptno and d.dname = dept_name;

    declare continue handler for NOT FOUND set lp_flag = false;

    open emp_cursor ;

    emp_loop:loop
        fetch emp_cursor into e_no,e_name,e_sal;

        if lp_flag then 
            if e_name = 'king' then
                iterate emp_loop;
            else
                update emp e set e.sal + 100 where e.empno = e_no;
            end if;
        else
            leave emp_loop;
        end if;

    end loop emp_loop;
    set @end_flag = 'exit_flag';
    close emp_cursor ;
end //

你可能感兴趣的:(MySQL存储过程,sql,数据库)