Search Results for 'trigger'

1 POSTS

  1. 2008/04/15 [ORACLE] Trigger

[ORACLE] Trigger

Posted 2008/04/15 16:04

1.  BEFORE  / INSERT
// student Table에 Insert하기 전에 동작하는 Trigger

CREATE OR REPLACE TRIGGER incr_count
BEFORE
 INSERT ON student
 FOR EACH ROW
 WHEN (new.s_year < 3)

BEGIN
 DBMS_OUTPUT.PUT_LINE('저학년 :'|| :new.s_name);

END;
/



2. 행 트리거
// dept 테이블에 UPDATE명령이 일어날 경우 반응
// :old, :new 연산자 사용
// :old.dname - 변경 전 부서 이름 , :new.dname - 변경 후 부서 이름

CREATE OR REPLACE TRIGGER triger_test
BEFORE
UPDATE ON dept
FOR EACH ROW

BEGIN
 DBMS_OUTPUT.PUT_LINE('변경 전 컬럼 값 : ' || :old.dname);
 DBMS_OUTPUT.PUT_LINE('변경 후 컬럼 값 : ' || :new.dname);
END;
/

SQL> UPDATE dept
SET dname='총무부'
WHERE deptno=30
변경 전 컬럼 값 : SALES
변경 후 컬럼 값 : 총무부

1개의 행이 갱신되었습니다.

0.00 초



3. BEFORE / INSERT or UPDATE
// row가 Insert되거나 Update되기 전에 전체 row의 평균을 구한다.

CREATE OR REPLACE TRIGGER sum_trigger
BEFORE
 INSERT OR UPDATE ON emp
 FOR EACH ROW

DECLARE
 --변수를 선언할 때 DECLARE문 사용
 avg_sal NUMBER;

BEGIN
 SELECT ROUND(AVG(sal), 3)
 INTO avg_sal
 FROM emp;
 DBMS_OUTPUT.PUT_LINE('급여 평균 : ' || avg_sal);

END;
/


SQL> INSERT INTO emp(empno, ename, job, hiredate, sal)
VALUES(1000, 'LION', 'SALES', SYSDATE, 5000);
급여 평균 : 2085.214

1개의 행이 삽입되었습니다.

0.03 초

'C.S.E > Database' 카테고리의 다른 글

[ORACLE] Trigger  (0) 2008/04/15
[ORACLE] Procedure  (0) 2008/04/15
[ORACLE] Stored Procedure Exception  (0) 2008/04/15
[ORACLE] Stored Procedure Programming  (0) 2008/04/15
[ORACLE] Stored Procedure  (0) 2008/04/15
[ORACLE] Stored Procedure를 사용한 Insert / Select 시간측정  (0) 2008/04/14