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
반응형