Trigger는 테이블에 붙어있어 테이블에 다른 작업이 발생하면 실행되는 코드를 말한다.

만약 어떤 테이블에서 delete를 할 경우 delete된 정보를 Tigger라는 명령어를 이용하여 

Trigger 테이블에 저장시킬 수 있는 것이다.

이외에도 다양한 용도가 있지만 나중에 한번더 포스팅 해야겠다.

 

그럼 위에 나와있는 상황을 가지고 예제를 하나 작성 해본다.

 

 

데이터를 삭제 시킬 테이블을 생성

create table deleteMemberTBL ( memberID char(8), memberName char(5), memberAddress char(20), deleteDate date -- 삭제한 날짜 ); 
 
그럼 이번에는 위에 테이블에서 데이터가 삭제 됬을 경우 그 데이터를 저장시킬 Trigger 테이블을 생성 해보자
delimiter // create trigger trg_deletedMemberTBL -- 트리거 이름 
after delete -- 삭제가 일어난 후 작동 
on memberTBL -- memberTBL에서 delete가 일어난 후에 작동 
for each row -- 각 행마다 적용 
begin -- old 테이블의 내용을 백업 테이블에 삽입 
insert into deleteMemberTBL values 
(old.memberID, old.memberName, old.memberAddress, curdate() ); 
-- curdate()는 위에 deleteDate를 저장 end // delimiter; 
 
이제 memberTBL에서 데이터를 delete 해보자
 delete from memberTBL where memberName = 'nanggi'; 
 
만약 위에 데이터 성공적으로 지워졌다면 아래에 지정한 trigger 테이블에 insert 된다.  
 
이런식으로 백업 테이블을 만드는데도 trigger를 사용할 수도 있고 다른 여러가지 방법으로도 사용될 수 있다.

 

'SQL > mysql' 카테고리의 다른 글

WHERE  (0) 2017.09.08
USE  (0) 2017.09.08
뷰 (view)  (0) 2017.09.07
인덱스 (index)  (0) 2017.09.07
서브 쿼리  (0) 2017.09.05