트리거 (trigger)
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를 사용할 수도 있고 다른 여러가지 방법으로도 사용될 수 있다.