2013년 5월 21일 화요일

업데이트 트리거




--부서 예산 상승율만큼 해당 부서 사원들의 월급도 같은 비율로 오르게하는 트리거
create trigger RAISE_SALARY
after update of budget on department
for each row
declare 
        vbud number;
begin
        vbud := :NEW.budget / :OLD.budget;
update
       employee
set
       salary = salry * vbud;
where
        :OLD.deptno = dno;
end;

--부서의 관리자의 월급은 6,000,000원 이상인 사원만 관리가 가능하게 하는 트리거


create or replace trigger check_salary
after insert on department
for each row
declare 
  vSal number;  
begin
  select salary into vSal  from employee  where :NEW.manager = empname ;
if(vSal <6000000) then
  delete from department where manager = :NEW.manager;
  end if;
end;






create trigger {트리거 명}
after update {or delete , or insert 등} {of 변경되는 애트리뷰트명}
on {레이블명}
for each row
declare {선언 안해도됌}
..{사용될 변수명}
begin
{변경 할 사항 (insert,update,delete 등)}
end;

댓글 없음:

댓글 쓰기