데이터베이스 분류
초간단 트리거강좌
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 9,861 조회
- 0 추천
- 목록
본문
초간단 트리거강좌
트리거는 insert, update, delete등의 질의가 올때 이의 전/후에서 어떤 작업을 할지
지정할 수 있는 수단을 제공해준다. 뭐 꼭 insert,update,delete뿐 아니라 다른 것에도
되지만.. 일단 이 부분만 보는것이 이해하기에 좋을것 같다.
일단 간단한 예를 보자.
SQL> desc test;
이름 널? 유형
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(10)
AGE NUMBER
SQL> desc test2;
이름 널? 유형
----------------------------------------- -------- ----------------------------
NAME VARCHAR2(10)
SQL> create or replace trigger test_insert_t1
2 after
3 insert or delete or update on test
4 for each row
5
6 begin
7
8 if INSERTING then
9 INSERT INTO test2 values (:new.name);
10 end if;
11
12 if DELETING then
13 DELETE FROM test2 where test2.name = :old.name;
14 end if;
15
16 if UPDATING then
17 UPDATE test2 set name = :new.name where name = :old.name;
18 end if;
19
20 end;
21 /
트리거가 생성되었습니다.
SQL> insert into test values ('강명규', 28);
1 개의 행이 만들어졌습니다.
SQL> select * from test;
NAME AGE
---------- ----------
강명규 28
SQL> select * from test2;
NAME
----------
강명규
SQL> update test set name='홍길동' where name='강명규';
1 행이 갱신되었습니다.
SQL> select * from test;
NAME AGE
---------- ----------
홍길동 28
SQL> select * from test2;
NAME
----------
홍길동
SQL> delete from test;
1 행이 삭제되었습니다.
SQL> select * from test;
선택된 레코드가 없습니다.
SQL> select * from test2;
선택된 레코드가 없습니다.
SQL>
설명
쉬운 예제라 설명할 것이 별로 없다.
test, test2테이블이 있다.
test에 insert, update, delete문이 사용될때, 이를 test2테이블에도 반영한다.
:new
새로 변경되는 데이터(insert시는 새로 insert되는 데이터, update시 변경된 데이터)
:old
기존의 데이터(update, delete시)
트리거의 종류
row, statement
before, after
instead of
user_triggers
음.. 시간이 부족해서 이쯤에서..
"무단배포금지: 클라우드포털(www.linux.co.kr)의 모든 강좌는 저작권에 의해 보호되는 콘텐츠입니다. 무단으로 복제하여 배포하는 행위는 금지되어 있습니다."
관련자료
-
이전
-
다음
댓글 0
등록된 댓글이 없습니다.
