1.트리거의 정의
데이터베이스가 미리 정해 놓은 조건이 충족되거나, 특정 테이블에 삽입/수정/삭제 등의 데이터 변경이 발생하면 자동으로 수행되도록 정의한 동작.
목적)
특정 테이블에 대한 테이터 변경을 기점으로 그와 관련된 작업을 수행하기 위함.
데이터 무결성 유지 및 로그메세지 출력 등 에 사용되기도 한다.
구성요소)
1. 트리거가 실행될 조건이 되는 문장이나 이벤트
2. 실행조건의 제약
3. 실행될 내용
트리거생성 EX)
CREATE OR REPLACE TRIGGER alarm_for_bal BEFORE INSERT OR UPDATE ON balance_tab -----------a FOR EACH ROW WHEN (new_balance < 3000) -----------b CALL alarm_for_balance_fn() -----------c |
a. 테이블 balance_tab의 balance 컬럼에 로우가 INSERT되거나 UPDATE 되었을 때 실행된다.
b. 해당 로우의 값이 3000 미만인지 검사한다.
c. 검사한 결과가 맞으면 alarm_for_balance_fn 함수 호출
트리거타입)
1.로우/문장 (row/statement)
로우 : 테이블에 INSERT,UPDATE,DELETE가 발생하는 로우마다 트리거의 내용이 실행되는 타입
-(각 로우에 연산이 발생할때마다 연산 직전 또는 직후에 트리거가 실행된다.)
문장 : 로우의 개수에 상관없이 문장 단위로 한 번만 수행
2.BEFORE AFTER
BEFORE : 조건문장이 실행되기 전에 트리거의 내용이 실행되는 타입
AFTER : 조건문장이 실행된 후 트리거의 내용이 시횡해되는 타입
==트리거는 두 종류의 타입 중에서 하나씩을 각각 가질 수 있다. 즉,
1. BEFORE 로우
2. BEFORE 문장
3. AFTER 로우
4. AFTER 문장
의 타입으로 생성 가능하다.
'학습 > 정처기' 카테고리의 다른 글
[실기] 3일차 연습문제 (0) | 2020.06.11 |
---|---|
[실기] 2일차 연습문제 (0) | 2020.06.10 |
[실기]1일차 연습문제 (0) | 2020.06.09 |
응용 SQL 작성 (0) | 2020.05.10 |
느슨한 결합과 강한 결합 (0) | 2020.05.03 |