--CHECK : 추가 또는 수정시 설정한 조건에 맞는 올바른 데이터인지 검증
-- 추가 및 수정시 마다 체크하므로 성능 저하
--컬럼레벨로 지정
CREATE TABLE 테이블명(
컬러명 타입 [CONTRAINT 제약조건이름] CHECK(조건)
:
);
--확인
SELECT * FROM USER_CONSTRAINT;
SELECT * FROM USER_CONS_COLUMNS;
--이미 존재하는 테이블에 CHECK
ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건이름 CHECK (컬럼명);
--CHECK 제거
ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건이름;
EX)
CREATE TABLE test2(
id VARCHAR2(20) PRIMARY KEY
,name VARCHAR2(20) NOT NULL
,gender VARCHAR2(20) CHECK(gender IN('남자','여자'))
,score NUMBER(3) CHECK(score BETWEEN 0 AND 100)
);
INSERT INTO test2(id,name, gender, score) VALUES('1','a','남자',50);
INSERT INTO test2(id,name, gender, score) VALUES('2','b','man',50); --성별 설정한 check 조건 제약위반
INSERT INTO test2(id,name, gender, score) VALUES('3','c','남자',150); --점수 설정한 check 조건 제약위반
INSERT INTO test2(id,name, gender, score) VALUES('4','d',null,50);
COMMIT;
SELECT * FROM test2;
UPDATE test2 SET score=120 WHERE id='1'; --점수 check제약위반(테이블 생성시에 만든 숫자 범위를 벗어남)
'오라클 > 제약조건' 카테고리의 다른 글
참조키(외래키, FORIGN KEY) (0) | 2013.06.11 |
---|---|
제약조건 DEFAULT 디폴트 (0) | 2013.06.01 |
제약조건 NOT NULL (0) | 2013.06.01 |
제약조건 UNIQUE 유니크 (0) | 2013.06.01 |
제약조건 PRIMARY KEY 기본키 (0) | 2013.06.01 |