🍷DataBase/🎮Oracle

[Oracle/오라클] 트리거(trigger)

김말자 2022. 11. 15. 16:32
728x90
728x90
BIG

트리거

어떤 테이블에 액션이 들어가면 b테이블에 액션이 동반하는 것을 말함

보통 테이블에 update나 delete기능을 쓸떄 많이 씀

ex)회원탈퇴시 정보를 모아두기위해사용

 

자료들을 커밋한 후 

트리거를 받을 테이블을 하나 만듬

Create  TRIGGER 트리거명 --트리거생성
AFTER  delete --지울때나 수정할때 delete, update가 들어갈 수 있음
on 움직일 테이블명
for each  row
begin 테이블이 움직일때 할 행동
   insert  into 움직일 테이블이 움직였을때 같이 실행될 테이블(보통삽입을 많이함)
   values( 컬럼);  
end; 마침

 

ex)

 

create table user1( -- 원테이블
  userName nchar(3) primary key,
  mobile varchar2(12)
);

움직일 테이블 생성

 

--자료넣기
insert into USER values ('김둘리','01049940887');
insert into USER values ('최하니','01082880362');
insert into USER values ('박똘이','01060940215');

뒤에 번호는 임의번호임

commit; --커밋

커밋해줌

움직임당했을때 들어올 테이블만듬

create table Triuser(
  userName nchar(3) primary key,
  mobile varchar2(12), 
  delDate  DATE
);

트리거생성

Create  TRIGGER del_user --트리거생성
AFTER  delete
on user1
for each  row
begin
   insert  into Triuser
   values( :old.userName, :old.mobile, sysdate());  
end;

실행되는지 확인

delete from USER1 where USERNAME='둘리'; --트리거를 위한 레코드날리기
select * from  Triuser; -- 트리거확인을 위한 테이블

 

728x90
반응형
BIG