새소식

인기 검색어

SQL

TRIGGER

  • -
트리거(Trigger)

프로시저, 함수와 같이 블록구조가 유사하지만 프로시저, 함수는 외부적이 실행명령으로 실행되는 반면에 트리거의 실행은 데이터베이스 이벤트에 반응하여 실행되는 프로그램 단위로 DML문이 발생할 때 자동적으로 호출된다.

 

※ DML트리거(trigger)란?

더보기
더보기
DML 
트리거는 DML 문(INSERT, UPDATE, DELETE)이 테이블의 하나 이상의 데이터에 영향을 미칠 때에 자동으로 실행되는 트리거로 프로시저나 함수는 사용자가 직접 호출해야만 하지만, 트리거는 오라클에서 사용자에게 알려주지 않고 자동으로 호출하여 처리한다.

 

트리거의 용도
  1. 테이블의 데이터 작업에 대한 감시, 보안 용도
  2. 테이블의 변화에 따라 필요한 다른 프로그램을 실행시킬 수 있다.
  3. 테이블 생성시에 참조 무결성과 데이터 무결성 그 밖의 조약조건으로 정의할 수 없는 복잡한 요구사항에 대한 조건을 생성

 

 

트리거의 문법
BEFORE: 테이블명에 대한 작업을 수행하기 전에 트리거가 실행하게 하는 명령어
AFTER: 테이블명에 대한 작업을 성공적으로 실행했을 때 트리가 실행하도록 하는 명령어
INSERT: 새로운 행 삽입
DELETE: 기존 행 삭제
UPDATE: 기존 행 갱신
FOR EACH ROW:  매번 변경되는 데이터 행의 수만큼 실행을 위한 명령어(행 트리거 판별)

 

트리거 형식
CREATE [OR REPLACE] TRIGGER "원하는 트리거 이름"
[BEFORE || AFTER] "트리거 이벤트(INSERT, DELETE, UPDATE)" ON "테이블명"
[FOR EACH ROW] -- 행트리거, 명령문트리거라면 생략가능
BEGIN
END;

 

트리거의 종류
  1. 문장트리거
    단 한번 실행되며 컬럼의 데이터 값에 상관없이 그 컬럼의 변화가 일어남을 감지하여 실행되는 트리거
  2. 행트리거
    컬럼의 각각의 데이터행에 변화가 생길때마다 실행되며 그 데이터 행의 실제값을 제어할 수 있다.

'SQL' 카테고리의 다른 글

쌍 파이브(||)  (0) 2022.10.17
SUM, AVG  (0) 2022.10.17
SQL 문법의 종류  (0) 2022.10.14
아스타 리스크(*)  (0) 2022.10.14
[SQL] ROUND  (0) 2022.10.09
Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.