검색결과 리스트
글
트리거는 INSERT, UPDATE, DELETE가 실행 될 경우 TABLE에 대해 묵시적으로 실행되는 프로시저이다.
이는 테이블과 별도로 데이터 베이스에 저장이 되고 뷰에 대해서는 정의가 불가능하다.
또한 행과 문장 트리거 두가지로 이루어지는데,
행 트리거는 컬럼 각각의 행의 데이터 변화가 생길 때 마다 실행되고 행의 실제 값을 제어하며
문장 트리거는 단 한번만 실행되면서 컬럼의 데이터 행을 제어가 가능하다.
트리거의 문법은 다음과 같은 형태이다.
CREATE OR REPLACE TRIGGER test_trigger
BEFORE|AFTER
trigger_event ON table
[FOR EACH ROW]
[WHEN (condition)]
위에서 보면 BEFORE, AFTER, trigger_event, FOR EACH ROW를 볼 수 있다.
이의 설명은 다음과 같다.
속성 |
설명 |
BEFORE |
삽입, 삭제, 업데이트 전에 트리거 실행 |
AFTER |
삽입, 삭제, 업데이트 후에 트리거 실행 |
trigger_event |
삽입, 삭제, 업데이트 중 한개 이상 가능 |
FOR EACH ROW |
행 트리거 실행 |
다음은 사용 방법이다.
CREATE OR REPLACE TRIGGER test_trigger
BEFORE
UPDATE ON TABLE
FOR EACH ROW
DBMS_OUTPUT.PUT_LINE(old.NO);
DBMS_OUTPUT.PUT_LINE(new.NO);
BEGIN
END;
위와 같이 처리하고 업데이트 문을 실행시키면 변경 전과 변경 후의 데이터가 나타 날 것이다.
또한 OR 키워드를 이용하여 UPDATE OR INSERT OR DELETE 를 이용하면 각기 문장이 일어 났을 경우에도 그 처리 된 내용을 확인 할 수 있을 것이다.
RECENT COMMENT