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)사용할 수 없다.
'공부 > 데이터베이스' 카테고리의 다른 글
[데이터베이스] key (0) | 2021.10.21 |
---|---|
[데이터베이스] 조인(join) (0) | 2021.10.21 |
[데이터베이스] 정규화 (0) | 2021.10.21 |
[데이터베이스] 트랜잭션(transaction), locking (0) | 2021.10.21 |
[데이터베이스] ORACLE vs MySQL (0) | 2021.10.21 |