Database/SQL
[SQL] 트리거
gangintheremark
2021. 12. 6. 05:15
728x90
트리거
- 테이블에 이벤트가 발생하면 자동으로 실행되는 작업
- 데이터베이스 작업을 제한하거나, 작업의 기록
log
, 작업에 대한 감사audit
를 수행하기 위해 사용- 트리거의 구성요소 : 이벤트, 조건, 동작
- 행 트리거 : 테이블 내에 변경되는 행에 대해 각각 실행
- 문장 트리거 :
INSERT
UPDATE
DELETE
문장 전체에 대해 실행
[트리거 정의]
CREATE\[OR REPLACE\] TRIGGER <trigger\_name>
\[BEFORE|AFTER\] \[INSERT|UPDATE|DELETE\] ON <table\_name>
\[FOR EACH ROW|FOR EACH STATEMENT\]
\[WHEN condition\]
BEGIN
...
END;
[트리거 삭제]
DROP TRIGGER <trigger\_name>
[트리거 카탈로그]
ALL_TRIGGERS
: 데이터베이스 내의 모든 트리거USER_TRIGGERS
: 현재 사용자의 트리거들
🍀 트리거의 예시
CREATE OR REPLACE TRIGGER to\_refresh\_dept\_size
AFTER INSERT or UPDATE or DELETE OF dept ON student
BEGIN
refresh\_dept\_size; // 학과별 학생 수를 저장해노은 저장프로시저 호출
END;
/
INSERT into student values (600,'홍길동',3,'IT');
-- 실행결과
-- >> 실행하면 자동으로 dept\_size에 IT 추가
728x90