티스토리 뷰
Trigger : 특정 이벤트가 발생할 때마다 자동으로 실행되는 PL/SQL 블럭
- 개발자가 호출하여 사용할 수 없음
- 데이터 베이스내에 오브젝트로 저장되어 관리
- DML Trigger가 가장 많이 사용
특징
- 트리거를 생성하려면 권한이 필요
- 트리거를 이루는 몸체 부분에 TCL 명령은 포함될 수 없음
#TCL 명령 : rollback 등
단순 DML Trigger
1. 유형
- Before Trigger : 테이블에서 DML 이벤트를 Trigger 하기 전에 본문 실행
- After Trigger : 테이블에서 DML 이벤트를 Trigger 한 후에 본문 실행
- Instead of Trigger : Trigger문 대신 Trigger본문 실행
다른 방법으로 수정 불가능한 뷰에 사용
2. 구조
- 문장 Trigger : 영향을 받는 행이 없더라도 Trigger가 한번은 실행
- 행 Trigger : 테이블이 Trigger 이벤터의 영향을 받을 때 마다 실행
-> for each row
-> old : Trigger가 처리한 레코드의 원래 값 저장
-> new : 새로운 값 포함
기본 형태
CREATE [OR REPLACE] TRIGGER 트리거명
TIMING [BEFORE | AFTER]
EVENT [INSERT | UPDATE | DELETE]
ON 테이블명
BEGIN
실행명령;
END;
트리거 생성
예시
재고 테이블과 창고 테이블 생성
재고 테이블에 값 추가
cnt에 자동으로 추가되게끔 설정해놓음
#NEW나 OLD를 사용할 때에는 앞에 : 를 무조건 입력해야함
warehouse
item
in_cnt가 증가된것을 볼 수 있다
'DATABASE > SQL' 카테고리의 다른 글
[SQL] ROLE (0) | 2018.04.24 |
---|---|
[SQL] 보안 (0) | 2018.04.23 |
[SQL] SUBPROGRAM PACKAGE (0) | 2018.04.23 |
[SQL] PROCEDURE (0) | 2018.04.23 |
[SQL] PL/SQL (0) | 2018.04.20 |