MariaDB

데이터베이스 Trigger(트리거)

Yonggyu 2023. 10. 10. 09:41
반응형

 

트리거 (Trigger)

트리거란 테이블에 부착되어, 테이블에 INSERT, UPDATE, DELETE 작업이 발생되면 자동으로 실행되는 코드를 말한다.

 

트리거의 용도는 만약 회원이 탈퇴한다고 가정했을시 그 회원이 기존회원인지 데이터 베이스에서 삭제해버리면 알 수가 없다. 이를 방지하기 위해 삭제되기 전에 미리 백업 테이블에 복사해 놓는다. 그것을 수작업으로 하기 어려우니 자동으로 해주는 트리거가 존재한다.

 

 

 

MemberTBL라는 테이블이 존재한다고했을때, 이 테이블에 트리거를 적용시키고 확인해보자

 

 

트리거 형식

DELIMITER $$ -- 구문 분리 문자를 변경

CREATE TRIGGER trg_deleteMemberTBL  -- 트리거이름
	AFTER DELETE  -- 삭제후에 작동하게 지정 
	ON memberTBL  --  트리거를 적용할 테이블
	FOR EACH ROW  -- 각 행마다 적용시킨다는 의미
	BEGIN 
	INSERT INTO deletedMemberTBL -- 백업 테이블
    VALUES (OLD.memberID, OLD.memberName, OLD.memberAD, CURDATE()); -- 데이터 값들

END $$
DELIMITER ; -- 구문 분리 문자를 복원

 

위 코드처럼 트리거를 설정하고 삭제하기 전에 deleteMember TBL테이블에 삭제될 투플을 저장한다.

데이터를 삭제했을시 아이디, 이름, 주소 및 CURDATE()로 인해 삭제된 날짜까지 자동으로 입력된다.

 

DELETE FROM memberTBL WHERE memberName LIKE '%한%';

'한' 이라는 이름이 들어간 데이터를 삭제했다.  그럼 백업 테이블을 확인해보면 데이터가 들어가 있다.

 

 

 

 

 

 

 

728x90
반응형