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 : 이 옵션이 있으면 행 트리거가 된다.