트리거 질문 드립니다. 1 1 1,132

by 지연 [2015.11.07 11:55:05]


초보 개발자 입니다.

트리거를 처음 써보는데요..

트리거 작성하다가 궁금한게 있어서 질문드립니다.

트리거 중간에..

노란색으로 칠해진 부분은 어떤 의미를 가지고 있는지 이해가 안되네요..

알려주시면 감사하겠습니다..

CREATE TRIGGER medal_trigger
 AFTER UPDATE OR DELETE OR INSERT
ON AAA
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
WHEN (
NEW.NUM > = '17' OR OLD.NUM >= '17'
)
BRGIN
IF INSERTING THEN
        INSERT INTO b(gb, dt, pk, new_c1, new_c2)
        VALUES('I', sysdate, :NEW.pk, :NEW.c1, :NEW.c2)
        ;
    ELSIF UPDATING THEN
        INSERT INTO b(gb, dt, pk, new_c1, new_c2, old_c1, old_cd)
        VALUES('U', sysdate, :NEW.pk, :NEW.c1, :NEW.c2, :OLD.c1, :OLD.c2)
        ;
    ELSIF DELETING THEN
        INSERT INTO b(gb, dt, pk, old_c1, old_cd)
        VALUES('D', sysdate, :OLD.pk, :OLD.c1, :OLD.c2)
        ;
    END IF;
END;
 

by 마농 [2015.11.07 15:17:47]
CREATE OR REPLACE TRIGGER medal_trigger    -- 트리거 생성
AFTER                                      -- 동작시점(before/After)
UPDATE OR DELETE OR INSERT                 -- 트리거 동작을 일으키는 구문
ON AAA                                     -- 트리거 걸린 테이블
REFERENCING NEW AS NEW OLD AS OLD          -- OLD(변경전) 와 NEW(변경후) 를 정의하는 부분으로 보통 생략함
FOR EACH ROW                               -- 행트리거임(이구문이 없으면 문장트리거)
WHEN (NEW.NUM >= '17' OR OLD.NUM >= '17')  -- 트리거 동작을 일으키는 조건
DECLARE                                    -- 선언부(변수  선언)
BEGIN                                      -- 작업의 시작
END;                                       -- 작업의 끝
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입