Trigger트리거 - 방아쇠라는 뜻으로
방아쇠를 당기면 총알이 발사되듯 해당 지정 이벤트를 설정하면 다음에 해당하는 실행되는 프로그램
Trigger의 기본 문법은
create or replace trigger ${트리거이름}
[before/after]
트리거 이벤트 on 테이블명
declare
선언문
brgin
PL/SQL 코드
end;
[before / after] 택 1로 작성하여, 해당 이벤트 시점을 지정해주어야 한다.
before - 트리거 이벤트 전
after - 트리거 이벤트 후
트리거 이벤트는 insert, update, delete
즉, before insert on emp 하게 되면 emp가 인서트되기 이전에 트리거가 실행된다.
[for each row]가 붙을 수 있는데, 해당 코드가 붙으면
각 행마다 실행되는 트리거가 된다.
[when] 을 붙혀 조건문이 있는 트리거가 된다.
트리거 예제
CREATE OR REPLACE TRIGGER Emp_Sal_Change
BEFORE
INSERT OR UPDATE ON emp
FOR EACH ROW
WHEN (new.empno > 0)
DECLARE
sal_diff number;
BEGIN
sal_diff := :new.sal - :old.sal;
DBMS_OUTPUT.PUT_LINE('이전 급여 : ' ||:old.sal);
DBMS_OUTPUT.PUT_LINE('신 급여 : ' || :new.sal);
DBMS_OUTPUT.PUT_LINE('급여 차액 : '|| sal_diff);
END;
'DB > Oracle' 카테고리의 다른 글
[Oracle] DBLink @ (1) | 2023.10.11 |
---|---|
[Oracle] Decode(if, else if, else) (0) | 2023.09.20 |
[Oracle] Merge Into (0) | 2023.09.18 |