데이터베이스 분류
초간단 트리거강좌
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 7,468 조회
- 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
등록된 댓글이 없습니다.