IT수업/데이터베이스

it 수업 7주차 (28) TRIGGER

워제하 2024. 2. 8. 12:57

------------------
TRIGGER
------------------

-- 데이터 변경 이벤트가 발생했을 때 추가적으로 자동 실행되는 프로그램


-- Before trigger : 이벤트 발생 이전에 작동되는 트리거
                               INSERT, UPDATE, DELETE 세가지 이벤트로 작동
-After trigger : INSERT, UPDATE, DELETE 등의 작업이 일어났을 때 작동하는 트리거

 

 

 

 

● 백업 테이블 만들기

데이터를 수정하면 원래 데이터가 들어갈 백업 테이블을 구조만 복사하여 만들어 준다.

 

 

 

create table c_usertbl select * from usertbl;

 

 

 

- 구조만 복사해 백업테이블 만들기

create table c_usertbl_bak like c_usertbl;

 

 

- 백업테이블에 열 추가해주기

alter table c_usertbl_bak add column type char(5);
alter table c_usertbl_bak add column U_D_date char(5);
alter table c_usertbl_bak change column U_D_date U_D_date datetime;

 

 

 

 

 

● AFTER 트리거

데이터 수정을 한 후 수정하기 전 데이터를 백업테이블에 넣는 명령어를 만들어 준다.

 

 

show triggers;

 

show create trigger trg_c_usertbl_update;

 

 

 

데이터 수정 백업이 만들어졌으면 이제 데이터를 수정해볼 것이다.

 

이렇게 수정된 것을 볼 수 있고

update c_usertbl set name='바비' where userid='BBK';

 

백업 테이블을 보면 수정되기 전의 값이 들어 간 것을 볼 수 있다.

 

 

 

update c_usertbl set addr='경남' where userid='EJW';

 

 

 

 

 

 

● 삭제 트리거

 

삭제하기

 

delete from c_usertbl where userid='KKH'; 한 결과

 

 

 

select * from c_usertbl_bak; 로 

백업테이블 보면 삭제되기 전 데이터가 들어온 것을 볼 수 있다.

 

 

 

 

 

 

 

 

 

 

'IT수업 > 데이터베이스' 카테고리의 다른 글

it 수업 7주차 (27) EXCEPTION  (0) 2024.02.08
it 수업 7주차 (26) TRANSACTION (ROLLBACK)  (1) 2024.02.08
it 수업 7주차 (25) Procedure  (1) 2024.02.07
it 수업 7주차 (24) PIVOT  (1) 2024.02.07
it 수업 7주차 (23) JSON  (0) 2024.02.05