한테이블의 기존의 값과 입력하여 들어가는 값을 비교하고 싶습니다! 0 5 126

by 라면용 [Oracle 기초] Oracle [2021.11.25 09:29:11]


현재 A테이블에 기존의 B값이 있습니다.

이 상황에서 제가  A테이블에 C값을 넣습니다

(데이터 넣는 컬럼은 동일합니다 , 기본키도 아닙니다!)

 

B 와 C의 값이 동일하면 UPDATE 쿼리가 발생하게 하고 다르면 쿼리가 실행이 안되게 해야 하는데 혹시 어떻게 하면 될까요?  방법이 도무지 떠오르질 않습니다

by 마농 [2021.11.25 10:06:16]

업데이트 수행할 때 해당 컬럼 값은 변경하지 못하도록 하겠다는 건가요?


by 라면용 [2021.11.25 10:29:49]

네네 값이 만약 있다면 입니다!


by 마농 [2021.11.25 11:21:51]

값이 없다면(NULL)? 값을 입력하는 것은 가능하다는 건가요?


by 라면용 [2021.11.25 13:20:32]

네! 값이 없으면 update가 가능하지만 만악 값이 있는 경우에는 update가 되지 않도록 하려고 합니다

제가 생각을 해보았는데 update 절중 where 절에 서브쿼리로 select 출력하는 값이 count했을시 한개라도 값이 나오면 쿼리실행이 안되게 조건을 걸려고 하는데 가능할까요??


by 마농 [2021.11.25 13:36:26]
CREATE OR REPLACE TRIGGER tr_test
BEFORE UPDATE OF ename
ON emp
FOR EACH ROW
WHEN (OLD.ename IS NOT NULL AND OLD.ename != NEW.ename)
BEGIN
    RAISE_APPLICATION_ERROR(-20001, 'ename 항목은 변경 할 수 없습니다.');
END;
/

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입