首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于递增I.T部门员工薪资的PL-SQL游标。在MySql中降低20%

用于递增I.T部门员工薪资的PL-SQL游标。在MySql中降低20%
EN

Stack Overflow用户
提问于 2021-08-13 18:42:48
回答 2查看 178关注 0票数 0

我得给IT部门的所有员工加薪20%。在MySQL工作台中。

创建下表: Emp(E_ID,E_Name,E_Dept,E_Salary)

将适当的数据插入Emp表中。属性E_Dept包含的值如( I.T.,Accounts,Sales)..编写一个PL-SQL游标,用于递增I.T部门员工的工资。增加了20%。

我写了这个查询,

代码语言:javascript
运行
复制
    create procedure up()
     begin

     DECLARE  v_employee_id INT;
         enter code hereDECLARE  v_salary      NUMERIC(8,2);
      DECLARE  v_last_emp    INT DEFAULT 0;

delcare emp_cur cursor for select empid,salary from employee where dept = IT for update;

DECLARE CONTINUE HANDLER FOR NOT FOUND SET  v_last_emp=1;
START TRANSACTION;

open emp_cur;
emp_loop: LOOP

fetch emp_cur into v_employee_id, v_salary;
if v_last_emp then
leave emp_loop;
end if

update employee set salary = salary + salary * 0.20 where current of emp_cur;

end loop emp_loop;
close emp_cur;
set v_last_emp =0;
end;
EN

回答 2

Stack Overflow用户

发布于 2021-08-13 18:48:29

不要使用游标,这是基本的SQL。只需执行以下操作,假设这是一个文本字段,我为dept过滤器添加了单引号,但如果不是,请相应地进行调整:

代码语言:javascript
运行
复制
UPDATE employee SET salary = 1.2 * salary WHERE dept = 'IT';
票数 0
EN

Stack Overflow用户

发布于 2021-08-13 18:51:48

不需要将其作为过程或循环运行

但是您的代码中存在一些问题

代码语言:javascript
运行
复制
    create procedure up()
     begin

     DECLARE  v_employee_id INT;
         #enter code here
    DECLARE  v_salary      NUMERIC(8,2);
      DECLARE  v_last_emp    INT DEFAULT 0;

    declare emp_cur cursor for select empid,salary from employee where dept = 'IT' for update;

    DECLARE CONTINUE HANDLER FOR NOT FOUND SET  v_last_emp=1;
    START TRANSACTION;

open emp_cur;
    emp_loop: LOOP

        fetch emp_cur into v_employee_id, v_salary;
        if v_last_emp then
        leave emp_loop;
        end if;

        UPDATE employee 
        SET 
            salary = salary + (salary * 0.20)
        WHERE
            empid = v_employee_id;

    end loop emp_loop;
close emp_cur;
set v_last_emp =0;
end;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68777065

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档