728x90
반응형
프롤로그
데이터베이스 개체의 활용 드디어 마지막 파트이다.
트리커
테이블에 부착되어서 테이블에 INSERT나 UPDATE 또는 DELETE 작업이 발생되면 실행되는 코드를 말한다.
나중에 다시 나온다.
X라는 사람이 회원탈퇴를 하였을 때 이게 누구누구인지 정보를 어떻게 알 수 잇을까? 이미 데이터베이스에서 행 데이터가 삭제되었는데 말이다. 이때 행 데이터를 삭제하기 전에 그 내용을 다른 곳에 먼저 복사해 놓으면 된다.
이걸 수작업으로 하지 않고 다른 곳에 자동으로 저장해주는 기능이 트리거이다.
실습
(1) SQL 데이터 생성, 수정, 삭제 확인
INSERT INTO memberTBL VALUES ('Figure', '연아', '경기도 군포시 당정동');
로 생성을 하고
SELECT * FROM membertbl;
이 코드로 조회해보면
연아가 잘 등록된 것을 확인 할 수 있다.
수정을 하기 위해
UPDATE memberTBL SET memberAddress = "서울 강남구 역삼동" WHERE memberName = "연아";
을 하고 다시 조회해보면
SELECT * FROM membertbl;
연아 주소가 바뀐 것을 확인 할 수 있다.
이제 삭제를 해보면
DELETE FROM membertbl WHERE memberName = "연아";
이러면
잘 지워져 있다.
수정 삭제 조회 생성이 잘 되긴 하지만 나중에 연아가 쇼핑몰의 회원이었다는 증명 요구시 그걸 증명해줄 방법이 없다.
데이터 보관 테이블 생성
CREATE TABLE deleteMemberTBL(
memberID CHAR(8),
memberName CHAR(5),
memberAddress CHAR(20),
deleteDate DATE -- 삭제한 날짜
);
이렇게 생성해보자.
DELIMITER //
CREATE TRIGGER trg_deleteMemberTBL
AFTER DELETE
ON memberTBL
FOR EACH ROW
BEGIN
INSERT INTO deleteMemberTBL
VALUES(OLD.memberID, OLD.memberName, OLD.memberAddress, CURDATE() );
END //
DELIMITER ;
문법이 조금 어렵지만 삭제 작업이 일어나면 삭제된 행이 저장된다.
(3) 백엡 데이터 존재하는지 확인
DELETE FROM memberTBL WHERE memberName = "당탕이";
이걸로 당탕이 것을 지워보자.
memberTBL 칸은 잘 지워져 있고
백업 테이블에도 지워진 데이터가 기록되어 있다.
에필로그
이 외에도 데이터베이스 개체에는 커서, 스토어드 함수 등이 잇으나 나중에 한다.
728x90
반응형
'데이터베이스' 카테고리의 다른 글
[데이터베이스] 데이터베이스 모델링 #9 (1) | 2024.01.28 |
---|---|
[데이터베이스] 데이터베이스 백업 및 관리 #8 (0) | 2024.01.28 |
[데이터베이스] 데이터베이스 개체의 활용 - 스토어드 프로시저 #6 (0) | 2024.01.20 |
[데이터베이스] 데이터베이스 개체의 활용 - 뷰 #5 (0) | 2024.01.20 |
[데이터베이스] 데이터베이스 개체의 활용 - 인덱스 #4 (0) | 2024.01.20 |