테이블의 숫자를 받는 컬럼에서 양수만 받도록 설정하려면 어떻게 해야할까요? 0 5 3,371

by Albothyl [2013.11.13 11:18:34]





UPDATE numberTable
SET a  = a - b
WHERE   r  =  1 
;
테이블의 숫자를 받는 컬럼에서 양수만 받도록 설정하려면 테이블 설정을 어떻게 변경해줘야 할까요?

이런 쿼리가 여러번 실행되서 a가 음수가 되었을 때 에러가 발생하게 하고싶습니다.
by 우리집아찌 [2013.11.13 11:24:11]

에러내서 중단시키지 않으실거면..
UPDATE numberTable 
SET a = DECODE(SIGN(a - b),1,a-b,a)
WHERE  r = 1 

by Albothyl [2013.11.13 11:25:24]
중단 시킬려고해요.

by 우리집아찌 [2013.11.13 11:27:48]
그럼 UPDATE 전에 SELECT 하셔서 양수 체크 하셔야할듯합니다.

체크는 SIGN 함수
http://docs.oracle.com/cd/B28359_01/server.111/b28286/functions152.htm#i90056

by 마농 [2013.11.13 11:28:17]
ALTER TABLE dept ADD CONSTRAINT chk_deptno CHECK (deptno > 0);

by 우리집아찌 [2013.11.13 11:33:47]
컬럼에 제한을 두어도 되겠군요..
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입