database.sarang.net
UserID
Passwd
Database
DBMS
MySQL
PostgreSQL
Firebird
ㆍOracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
Oracle Q&A 13663 게시물 읽기
No. 13663
Re: 트리거좀 도와주세요(밑에질문보충)
작성자
홍길동
작성일
2003-02-27 13:21
조회수
979

트리거는 입력,수정,삭제시의 레코드 단위로 이벤트가 발생합니다.

데이터를 입력하면 바로 트리거에 관련된 테이블에 영향을 미치게 되는 거지요...

님처럼 작성하시면 레코드 한번 입력시 마다 emp 테이블에 있는 데이터를 모두다 읽어다가 dept 테이블에 저장하게 되는겁니다.

(배치 업무성 작업을 하실때에는 스토어드 프로시저를 작성하시는게 나을듯 합니다.)

 

트리거는 하나의 레코드 단위를 처리하는 것처럼 설계하고 구현하는게 가장 좋을듯 합니다.

아래 예제를 보내드립니다.

 

create or replace trigger emp_trigger

AFTER INSERT OR UPDATE OR DELETE

for each row

 

BEGIN

IF INSERTING THEN

INSERT INTO dept(deptno,dname)

VALUES (:new.empno,

:new.empname);

ELSIF UPDATING THEN

 

update dept set

dname=:new.enpname

where deptno=:new.empno;

 

ELSIF DELETING THEN

delete from dept

where deptno=:new.empno;

END IF;

END;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

-- 민이 님이 쓰신 글:

>> table emp :

>> empno, empname, SAL

>> table dept :

>> deptno,deptname

>> 이렇게 테이블이 두개가 있습니다.

>>

>> 여기서 저는emp 테이블에서 empno,empname만 select하여 table dept라는 곳에 각각 deptno,deptname에 넣고 싶습니다..

>> 근데..넘 어려워여 ㅜㅜ

>>

>> create or replace trigger emp_trigger

>> after

>> insert on emp

>> for each row

>>

>> declare @empno int; @empname varchar(10);

>> begin

>> select empno,empname

>> into @empno,@empname from emp

>> insert into dept(deptno,dname) values(@empno,@empname)

>> end;

>> /

>> 로 만들었는데..안되네요....트리거표시가 X로 나와고 insert되어도 dept로 값이 안넘어가네여 좀 도와주세요..

[Top]
No.
제목
작성자
작성일
조회
13664[질문] varchar2형을 long형으로 변경시... [2]
정남용
2003-02-27
1713
13662와우 리눅스 파란 R2에 오라클 9i설치중 위저드창이 없어졌어요
jay
2003-02-27
772
13661테이블을 어케 짜야 할지 감이 없습니다...도와주세여 [2]
초보자
2003-02-27
1239
13660트리거좀 도와주세요(밑에질문보충) [1]
민이
2003-02-27
820
13663┕>Re: 트리거좀 도와주세요(밑에질문보충)
홍길동
2003-02-27 13:21:46
979
13659영스
민이
2003-02-27
569
13656밑에 질문의 상세내용입니다 ㅡㅡ;
어려버
2003-02-27
654
13655두 테이블을 조인해야 하는데 어케 하는지.. [1]
어려버
2003-02-27
875
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다