创建一个触发器:定义一个before行级触发器,为员工表emp更新工资时定义一个完整性规则job为“MANAGER”的工资不得低于2500元,如果低于2500员,自动改为2500元。
create or replace trigger tri_sal_emp
before update on emp
for each row 
when(old.job='MANAGER')
declare
asal  emp.sal%type;
begin 
  select emp.sal into asal from emp
  where  ename= :old.ename;
  if asal<2500 then 
   asal :=2500;
  end if;
  end;这个代码写的有问题 
求指教,求教育

解决方案 »

  1.   

    create or replace trigger tri_sal_emp
    before update on emp
    for each row 
    when(old.job='MANAGER' and new.sal<2500)
    begin 
    :new.sal:=2500;
    end tri_sal_emp;
      

  2.   

    代码参考:CREATE OR REPLACE TRIGGER tri_sal_emp
    BEFORE UPDATE ON emp
    FOR EACH ROW  
    WHEN ( job = 'MANAGER')
    DECLARE
    asal emp.sal%TYPE;
    BEGIN
        IF :NEW.sal < 2500 THEN  
            :New.sal := 2500;
        END IF
    END;