수업/SQL
Trigger
케잉
2023. 11. 28. 20:56
특정 테이블에 INSERT, DELETE, UPDATE 같은 DML문이 수행되었을 때,
데이터베이스에서 자동으로 동작하도록 작성된 프로그램
-- 호출할 필요없이 자동으로 실행됨 - 자동으로 동기화 필요할 때 사용가능
-- 트리거는 비활성화 또는 활성화 할 수 있다 - 왜냐면 자동으로 실행되니까
[Syntax]
Create Trigger 트리거명
Before (or After)
UPDATE OR DELETE OR INSERT ON 테이블명
[FOR EACH ROW] - 생략가능
DECLARE
변수선언부
BEGIN
프로그램 코딩부
END;
--트리거 선언
create or replace trigger trg_deptcopy
after
insert or update or delete on dept
-- 각 로우에 트리거 적용한다
for each row
begin
--dept_copy 테이블에 데이터 삽입
if inserting then
insert into dept_copy(deptno, dname, loc)
--new는 새로 입력된 레코드 값
values(:new.deptno, :new.dname, :new.loc);
--업데이트
elsif updating then
update dept_copy
set dname = :new.dname, loc = :new.loc
where deptno = :old.deptno;
--삭제
elsif deleting then
delete from dept_copy
where deptno = :old.deptno;
end if;
end;