Insert 트리거 허용 여부조건 0 2 4,643

by 손님 [PL/SQL] 트리거 insert [2011.08.02 13:13:29]


혹시 insert트리거에 insert를 할지 말지 여부를 판단해서
조건에따라 insert를 허용할지 안할지를 결정할수 있을까요?
before트리거를 사용하면 될듯싶은데..전부null값으로 채워버리면 되려나...
by 마농 [2011.08.02 13:49:24]
트리거에서 특정조건을 체크하여 사용자정의에러를 방생시키면 됩니다.
특정 조건이라는것이 간단한거라면 체크제약조건으로 만드셔도 되구요.

예) emp 테이블의 입력 empno 가 1000 보다 작으면 에러 발생

-- 트리거 --
CREATE OR REPLACE TRIGGER tri_emp
BEFORE INSERT ON emp
FOR EACH ROW
BEGIN
IF :new.empno < 1000 THEN
RAISE_APPLICATION_ERROR(-20001, 'empno 는 1000 보다 커야 합니다.');
END IF;
END;
/

-- 제약조건 --
ALTER TABLE emp
ADD CONSTRAINT check_empno CHECK (empno > 1000);

by 손님 [2011.08.02 14:13:48]
아...그렇게 하면 되겠네요..감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입