본문 바로가기

DB/Oracle

[Oracle] Trigger

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