개발은 처음이라 개발새발

MySQL 트리거 맛보기 본문

mysql

MySQL 트리거 맛보기

leon_choi 2022. 9. 10. 15:19
반응형

인덱스 맛보기에 이어 트리거 맛보기를 해보겠습니다. 트리거는 테이블에 부착되엇 테이블에 insert, update, delete 작업이 발생되면 실행되는 코드입니다. 쉽게 설명하면 '자동'으로 위와 같은 쿼리가 실행된다는 겁니다. 자세한 내용은 다음 시간에 다뤄보도록 하고 이번 시간은 맛보기로 해보겠습니다. 

 

우선 shopdb에 있는 memeber_tbl에서 삭제된 데이터를 트리거 통해 삭제된 데이터를 담는 테이블에 넣어보려고 합니다.  그러면 우선 member_tbl에 삭제할 데이터를 입력해보도록하겠습니다. 그리고 삭제한 데이터를 담을 테이블까지 생성해보겠습니다. 

insert into shopdb.member_tbl values('figure','연아','경기도 군포시');

#데이터 변경
update shopdb.member_tbl set member_addres = '서울시 강남구' where member_name = '연아';

#데이터 조회
select * from shopdb.member_tbl;

네 연아라는 이름의 데이터가 들어가 있는 걸 확인했습니다. 이제는 삭제한 데이터를 담을 테이블을 만들고 트리거를 이용해 삭제된 데이터를 새로 만든 테이블에 입력하겠습니다.

#삭제 데이터 테이블 생성
create table shopdb.deleted_membertbl (
	member_id char(8),
    member_name char(5),
    member_addres char(20),
    deleted_date date);

#트리거 생성
DELIMITER //
create trigger shopdb.trg_deleted_member
	after delete
    on shopdb.member_tbl
    for each row
begin
	insert into shopdb.deleted_membertbl values(OLD.member_id, 
    	OLD.member_name,OLD.member_addres,curdate());
end//
DELIMITER ;

#데이터 삭제
delete from shopdb.member_tbl where member_name = '연아';

#삭제 데이터 확인
select * FROM shopdb.deleted_membertbl;

네 이렇게 트리거를 통해 삭제된 데이터를 새 테이블에 넣은 것을 확인해봤습니다. 이렇게 되면 데이터를 삭제해도 지워지지 않고 삭제된 데이터까지 따로 저장할 수 있는 기능을 구현할 수 있게 됐습니다. 

반응형

'mysql' 카테고리의 다른 글

[My SQL] WHERE절의 기본과 BETWEEN...AND, IN  (2) 2022.10.02
SELECT문과 My SQL 기초 정리  (1) 2022.09.27
MySQL 인덱스 활용 맛보기  (1) 2022.09.10
My SQL 데이터 입력하기  (0) 2022.09.05
My SQL 테이블 만들기  (1) 2022.09.05