Don't forget to smile
[혼자 공부하는 SQL] Chapter 7-3. 자동 실행되는 트리거 본문
트리거(Trigger) : INSERT, UPDATE, DELETE 문이 작동될 때 자동으로 실행되는 프로그래밍 기능
사용자가 추가 작업을 잊어버리는 실수를 방지하여 데이터의 무결성을 유지
<트리거 기본>
트리거는 테이블에서 DML 문의 이벤트가 발생할 때 작동

1) 트리거 사용을 할 간단한 trigger_table 테이블 생성

2) DELETE 문이 작동한 후에 가수 그룹이 삭제되었다는 메시지를 출력하는 myTrigger 트리거 생성

3) DELETE 문에만 발동하는 트리거이기 때문에 위 코드처럼 INSERT 문과 UPDATE 문에는 반응하지 않음

4) DELECTE 문을 테이블에 적용하자 미리 만들어두었던 트리거가 정상적으로 작동
<트리거 활용>
트리거는 단순 문자열 출력 뿐만 아니라 정보를 백업하는 용도로 사용 가능


1) 백업 실습에 사용될 메인 테이블 singer와 백업 테이블 backup_singer를 생성
이 때 백업 테이블은 수정과 삭제를 구분할 modType, modDate, modUser 추가

2) 우선 singer를 UPDATE 할 경우 작동되는 singer_updateTrg 트리거를 생성
위 트리거는 UPDATE 시 singer의 내용을 backup_singer에 수정본으로 저장
이 때 OLD 테이블은 DML 문이 수행될 때 변경되기 전 잠깐 저장되는 임시 테이블을 의미

3) 마찬가지로 singer를 DELETE 할 경우 작동되는 singer_deleteTrg 생성
위 트리거는 동일한 내용의 정보를 삭제본으로 저장

4) UPDATE와 DELETE 문을 수행 시 트리거가 정상적으로 작동되어
backup_singer에 데이터가 저장된 모습을 볼 수 있음

5) 하지만 DELETE와 동일한 기능을 하는 TRUNCATE 문에는 트리거가 반응하지 않음
이유는 DELETE 문에만 반응하도록 코드를 설계했기 때문
'SQL' 카테고리의 다른 글
| [혼자 공부하는 SQL] Chapter 8-2. 파이썬과 MySQL의 연동 (0) | 2023.01.03 |
|---|---|
| [혼자 공부하는 SQL] Chapter 8-1. 파이썬 개발 환경 준비 (0) | 2022.12.22 |
| [혼자 공부하는 SQL] Chapter 7-2. 스토어드 함수와 커서 (0) | 2022.12.12 |
| [혼자 공부하는 SQL] Chapter 7-1. 스토어드 프로시저 사용 방법 (0) | 2022.12.11 |
| [혼자 공부하는 SQL] Chapter 6-3. 인덱스의 실제 사용 (0) | 2022.12.09 |