햄찌개

ORACLE 공부 13일차 2020/09/02-(1) 본문

Oracle

ORACLE 공부 13일차 2020/09/02-(1)

햄찌개 2020. 9. 2. 16:38

TRIGGER
    -  어떤 이벤트가 발생하며 자동적으로 실행되는 프로시져의 일종
    (사용형식)
    CREATR [OR REPLACE] TRIGGER 트리거명 
        BEFORE | AFTER    INSERT | UPDATE | DELETE
        ON 테이블명
        [FOR EACH ROW]
        [WHERE 조건]  
    BEGIN
        명령문(들);
    END;
    
    1) 트리거 유형
         (1) 문장 단위 트리거 : 이벤트가 발생되었을 때 한번만 트리거 발생 .
            'FOR EACH ROW'생략 :NEW, :OLD와 같은 의사 레코드(수도 레코드) 사용 불가 
         (2) 행단위 트리거 : 이벤트에 의해 여러 행이 영향 받는 경우 각 행마다 트리거 발생.
            'FOR EACH ROW' 기술해야 하고,  :NEW, :OLD와 같은 의사 레코드(수도 레코드) 사용 가능.
            **하나의 트리거가 종료되지 않은 상태에서 다른 트리거 호출 불가 
            --어떤 특정 명령에 의해 영향 받은 행들의 집합 -> 커서 
            
    2)트리거 조건 
        - 행단위 트리거에서만 사용 가능 
        - 이벤트가 발생된 때 보다 구체적인 데이터 검색 조건 부여할 때 기술 
        --WHEN 트리거 조건 

 

 

 **의사(pseudo) 레코드
 -행단위 트리거
 :NEW    INSERT, UPDATE문에 사용.
            데이터가 삽입(갱신)될 때 새로들어온 값 DELETE에는 모든 값이 NULL이다.
 :OLD     DELETE, UPDATE문에 사용
            데이터가 삭제(갱신)될 때 존재하고 있는 값 DELETE에는 모든 값이 NULL이다.
    

 **트리거 함수 
1) INSERTING : 트리거 문장이(이벤트) INSERT이면 참 
2) UPDATING : 트리거 문장이(이벤트) UPDATE이면 참 
3) DELETING : 트리거 문장이(이벤트) DELETE이면 참   


'Oracle' 카테고리의 다른 글

ORACLE 공부 13일차 2020/09/03  (0) 2020.09.03
ORACLE 공부 13일차 2020/09/02 -(2)  (0) 2020.09.02
ORACLE 공부 12일차 2020/09/01  (1) 2020.09.01
ORACLE 공부 11일차 2020/08/31  (0) 2020.08.31
ORACLE 공부 10일차 2020/08/27~28  (0) 2020.08.28