[데이터베이스] 데이터베이스 개체의 활용 - 트리거 #7

2024. 1. 20. 23:13· 데이터베이스
목차
  1. 프롤로그
  2. 트리커
  3. 실습
  4. (1) SQL 데이터 생성, 수정, 삭제 확인
  5. 데이터 보관 테이블 생성
  6. 에필로그
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  (1) 2024.01.20
[데이터베이스] 데이터베이스 개체의 활용 - 뷰 #5  (1) 2024.01.20
[데이터베이스] 데이터베이스 개체의 활용 - 인덱스 #4  (0) 2024.01.20
  1. 프롤로그
  2. 트리커
  3. 실습
  4. (1) SQL 데이터 생성, 수정, 삭제 확인
  5. 데이터 보관 테이블 생성
  6. 에필로그
'데이터베이스' 카테고리의 다른 글
  • [데이터베이스] 데이터베이스 모델링 #9
  • [데이터베이스] 데이터베이스 백업 및 관리 #8
  • [데이터베이스] 데이터베이스 개체의 활용 - 스토어드 프로시저 #6
  • [데이터베이스] 데이터베이스 개체의 활용 - 뷰 #5
성밍쟁
성밍쟁
성밍쟁 공붕방
성밍쟁
너드인의 밤
성밍쟁
전체
오늘
어제
  • 분류 전체보기 (182)
    • 일상 (1)
    • 스펙업 (7)
      • 학회 (0)
      • 멋쟁이사자처럼 (2)
      • 2024 winter-study (5)
    • 코딩테스트 - 백준 (9)
    • 보안 스터디 (56)
      • 시스템 해킹 (10)
      • 리버스 엔지니어링 (0)
      • 웹 해킹 (38)
      • 암호학 (8)
    • bandit (15)
    • 웹 개발 (11)
    • 머신러닝 (0)
    • 데이터베이스 (9)
    • KnockOn (72)
    • DevOps (2)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 드림핵
  • /bin
  • 1074
  • 11656
  • 1193
  • 2563
  • 3Des
  • 9613
  • AES
  • Alias

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.2
성밍쟁
[데이터베이스] 데이터베이스 개체의 활용 - 트리거 #7
상단으로

티스토리툴바

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.