DB/Oracle

[Oracle] Trigger

sowon2 2017. 7. 3. 12:17

Trigger

- 묵시적으로 수행되는 procedure 프로시저

- 트리거는 table과 별도로 database에 저장

- 트리거는 view에 대해서가 아니라 table에 관해서만 정의 될 수 있다.

- 행 트리거 : 컬럼의 각각의 행의 데이터 행 변화가 생길때마다 실행,

 그 데이터 행의 실제값을 제어 할 수 있다.

- 문장 트리거 : 트리거 사건에 의해 단 한번 실행됨,

 컬럼의 각 데이터 행을 제어 할 수 없다.

트리거 문법

CREATE [OR REPLACE] TRIGGER trigger_name

BEFORE | AFTER

trigger_event ON table_name

[FOR EACH ROW]

[WHEN (condition)]

PL/SQL block

- BEFORE : INSERT, UPDATE, DELETE 문이 실행되기 전에 트리거가 실행

- AFTER : INSERT, UPDATE, DELETE문이 실행된 후 트리거가 실행

- trigger_event : INSERT, UPDATE, DELETE 중에서 한 개 이상 올 수 있다.

- FOR EACH ROW : 이 옵션이 있으면 행 트리거가 된다.