1. 트리거의 종류
AFTER TRIGGER
==> 어떤 테이블에서 DML
(INSERT, UPDATE, DELETE, MERGE) 명령이 실행된
이후에 다른 테이블에 어떤 변화가 발생되도록 하는 것
==> AFTER STATEMENT TRIGGER
STATEMENT TRIGGER 는 어떤 테이블에 저장된
행의 값을 알아올 필요가 없을 경우에 사용함.
FOR EACH ROW 를 사용안해야
STATEMENT TRIGGER 이다.
==> AFTER ROW TRIGGER
ROW TRIGGER 는 어떤 테이블에 저장된
행의 값을 알아올 필요가 있을 경우에 사용함.
FOR EACH ROW 를 사용하면
ROW TRIGGER 이다.
BEFORE TRIGGER
==>어떤 테이블에서 DML
(INSERT, UPDATE, DELETE, MERGE) 명령이 실행되기
이전에 주로 검사하는 목적으로 사용되는 것이다.
예를 들면 도서대여를 할 수 있는 요일과 시간대를
정한다. 즉, 화요일 ~ 일요일까지는 도서대여가 가능함.
또한 화요일 ~ 일요일중에도 오전 9시 부터 오후 6시이전
까지만 도서대여가 가능하도록 하고 그 이외는 도서대여가
불가능하도록 한다. 다시말하면 도서대여 가능이란
"도서대여" 테이블에 INSERT 를 할 수 있다는 것이고,
도서대여 불가능이란 "도서대여" 테이블에 INSERT 를
할 수 없다는 것이다.
==> BEFORE STATEMENT TRIGGER
==> BEFORE ROW TRIGGER
SELECT *
FROM TBL_BOOKRENT;
SELECT TO_CHAR(SYSDATE, 'DAY'),
TO_CHAR(SYSDATE, 'DY'),
TO_CHAR(SYSDATE, 'D')
FROM DUAL;