Database/Oracle

[Oracle]트리거(Trigger)의 사용

  • -
반응형
트리거(Trigger)

트리거는 어떤 테이블에 이벤트(INSERT, UPDATE, DELETE)가 발생했을 때 자동적으로 실행되는 작업입니다.

제가 경험한 트리거는 테이블의 히스토리를 남기기 위한 목적으로 사용됐었습니다.

 

오라클에서 트리거의 문법은 다음과 같습니다.

CREATE [OR REPLACE] TRIGGER [트리거명] [AFTER OR BEFORE] INSERT OR UPDATE OR DELETE ON [테이블명] [REFERENCING NEW AS NEW OLD AS OLD] [FOR EACH ROW] [DECLARE] BEGIN END [트리거명];
  • AFTER : 이벤트가 발생한 후 트리거 실행 | BEFORE : 이벤트가 발생하기 전에 트리거 실행
  • INSERT, UPDATE, DELETE : 트리거 이벤트로서 하나 이상 올 수 있음
  • FOR EACH ROW : 행 트리거[각주:1] 여부를 결정. FOR EACH ROW가 없으면 문장 트리거[각주:2]가 실행
  • DECLARE : 변수 선언부
  • BEGIN : 트리거 실행
  • REFERENCING NEW AS NEW OLD AS OLD : 이전 값과 새로운 값을 참조할 때 사용하게 되는데 아래와 같이 사용할 수 있습니다.(밑줄 친 부분은 변수명으로써 변경 전 값을 참조할 변수명과 새로운 값을 참조할 변수명을 입력해주면 됩니다)
IF INSERTRING THEN INSERT INTO TABLE_HIST(NUM, NAME) SELECT :NEW.NUM, :NEW.NAME FROM DUAL ELSE IF UPDATEING THEN INSERT INTO TABLE_HIST(NUM, NAME) SELECT :OLD.NUM, :OLD.NAME FROM DUAL

 

+ 피드백은 언제나 환영입니다 :)

반응형
Contents

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.