공부/데이터베이스

[데이터베이스] 트리거(trigger)

ghhong 2021. 10. 21. 14:27

1.    Trigger

트리거란?

테이블에 대한 이벤트에 반응해 자동으로 실행되는 작업을 의미한다. 트리거는 DML의 데이터 상태 관리를 자동화하는데 사용한다. 트리거를 사용하여 데이터 작업 제한, 작업 기록, 변경 작업 감사 등을 할 수 있다.

 

유형

행 트리거 : 테이블 안의 영향을 받은 행 각각에 실행된다. 변경 전 또는 변경 후의 행은 OLD, NEW라는 가상 row변수를 사용하여 읽을 수 있다.

문장 트리거 : INSERT, UPDATE, DELETE 문에 대해 한 번만 실행된다.

 

문법

create trigger mytrigger

after insert on mytable

for each row

begin

if ~ then ~

Insert into table_hist(col1,col2) values(new.col1,new.col2);

end if;

end

 

Mysql은 각 테이블에 각 형태의 단 하나의 트리거만 허용한다. (인서트 이전에 하나, 인서트 이후에 하나, 업데이트 이전에 하나, 업데이트 이후에 하나, 삭제 전에 하나, 삭제 이후에 하나)

trigger tcl(commit, rollback, savepoint)사용할 수 없다.