Notice
Recent Posts
Recent Comments
«   2026/08   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31
Tags
more
Archives
Today
Total
관리 메뉴

Don't forget to smile

[혼자 공부하는 SQL] Chapter 7-3. 자동 실행되는 트리거 본문

SQL

[혼자 공부하는 SQL] Chapter 7-3. 자동 실행되는 트리거

에르더그 2022. 12. 16. 18:09

트리거(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 문에만 반응하도록 코드를 설계했기 때문