반응형
    
    
    
  
트리거 (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
    
    
  반응형
    
    
    
  'MariaDB' 카테고리의 다른 글
| 데이터베이스 WITH절과 CTE (0) | 2023.10.11 | 
|---|---|
| 데이터베이스 SQL 분류 (2) | 2023.10.11 | 
| 데이터베이스 테이블 생성 및 INSERT, UPDATE, DELETE (1) | 2023.10.10 | 
| 데이터 베이스 모델링 (2) | 2023.10.10 |