트리거 구성요소#

  1. 트리거 이름
  2. 트리거링 구문
  3. 트리거 제약
  4. 트리거 동작

트리거 이름#

SQL> create trigger biufer_emp_deptno

다음처럼 명명관계가 있다.

  1. biufer - 각 행의 삽입이나 갱신전(before insert or update for each row)를 의미한다. 만약 각 레코드의 삭제후라면 ADFER(after delete for each row)를 사용한다.
  2. emp - 대상이 되는 테이블명
  3. deptno - 트리거와 관련된 칼럼명을 지칭한다.

트리거링 구문#

트리거를 실행하도록 하는 이벤트.
  1. 테이블이나 뷰에 대한 데이터 처리(insert, update, delete)
  2. 스키마 객체에 대한 데이터 정의(create, alter, drop)
  3. 데이터베이스 시작이나 종료
  4. 시스템 오류
  5. 기타 시스템 관련 동작

트리거 제약#

트리거 시작에 앞서 시작할지 말지에 대한 제약조건

트리거 동작#

실제 행위

트리거 타입#

구문 트리거#

insert, update, delete구문이 실행될때 작동하는 트리거이다.

SQL> create table t(a number);

테이블이 생성되었습니다.

SQL> create trigger biud_t
  2  before insert or update or delete on t
  3  begin
  4  if user not in ('SYS', 'HR') then
  5    raise_application_error(-20001'Yodo not have access to modify t table');
  6  end if;
  7  end;
  8  /

트리거가 생성되었습니다.

SQL> insert into t values(123);
insert into t values(123)
            *
1행에 오류:
ORA-20001: You do not have access to modify t table
ORA-06512"SCOTT.BIUD_T", 줄 3에서
ORA-04088: 트리거 'SCOTT.BIUD_T'의 수행시 오류

SQL> conn as sysdba
사용자명 입력: sys
암호 입력:
연결되었습니다.
SQL> insert into scott.t values(123);

개의 행이 만들어졌습니다.

SQL> conn scott/tiger
연결되었습니다.
SQL> select * from t;

         A
----------
       123

<div class="warning"> 미완.. </div>

Add new attachment

Only authorized users are allowed to upload new attachments.
« This page (revision-3) was last changed on 12-Jan-2008 17:51 by DongGukLee