트리거(Trigger)

June Lee·2021년 2월 24일

PL/SQL

목록 보기
7/7

트리거란 특정 테이블의 데이터에 변경이 이루어졌을 때 자동으로 다른 어떤 작업이 함께 수행되도록 설정하는 것이다.
트리거는 매우 편리하지만 부작용도 크기 때문에, 트리거를 사용하는 것이 좋은지에 대해서는 많은 찬반 여론이 있다.



트리거 유형

1) 문장 레벨 트리거: 정해진 DML문이 실행될 때에 처음 한 번만 트리거 실행

create or replace trigger trg_01
  after insert
  on emp11
  begin
    dbms_output.put_line('신입사원이 추가되었습니다.');
  end;

2) 행 레벨 트리거(FOR EACH ROW) - DML문이 실행되어 ROW가 추가/삭제/변경될 때마다 트리거 실행

create or replace trigger trg02
 after insert
 on emp11
 for each row
  begin
    insert into sal01 values(sal01_salno_seq.nextval, 3000, :NEW.empno);
END;
create or replace trigger trg03
  after delete
  on emp11
  for each row
  begin
    delete from sal01
      where empno = :OLD.empno;
end;

트리거에서 값 가져오기(바인드 변수 이용)

1) INSERT

    :OLD - NULL
    :NEW - 입력 값

2) UPDATE

    :OLD - 변경 전 값
    :NEW - 변경 후 값

3) DELETE

    :OLD - 삭제 전 값
    :NEW - NULL

삭제

DROP TRIGGER 트리거명
profile
📝 dev wiki

0개의 댓글