작성자

---------------------------------------------------------------------------------------------------

♦  너찌의 저장소 안내  ♦

기본적으로 각 작성자가 마주한

문제 해결 방법이나 기억하고 싶은 정보를

포스팅하기 때문에 설명에 생략이 많습니다.

각 글에 질문해주시면 가능한 답변 해드리겠습니다.

---------------------------------------------------------------------------------------------------

인천 행정사 소개 해드립니다 ↓

행정사 김철기 바로가기

---------------------------------------------------------------------------------------------------

300x250

---------------------------------------------------------------------------------------------------

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

+ Recent posts