개발 지식/[DBMS] Oracle

[Oracle] 제약 조건(2) - UNIQUE

devGSP 2022. 6. 24. 08:00
반응형
이 게시물은 Database GUI Oracle SQL Developer의 아래 버전 정보를 기준으로 작성되었습니다.

Java(TM) 플랫폼 : 1.8.0_321
Oracle IDE : 4.1.5.21.78

 

UNIQUE

 

설명

 

열에 저장할 데이터의 중복을 허용하지 않고자 할 때 사용하는 제약 조건. UNIQUE 제약 조건은 중복되는 값은 허용하지 않지만 NULL 저장은 가능하다.

NULL은 존재하지 않거나 해당 사항이 없다는 의미로 사용되는 특수한 값이므로 NULL에 데이터 중복의 의미를 부여할 수 없다.

 

 

사용 예시

 

-- COL_IDX열에 UNIQUE 제약 조건을 설정하여 테이블 생성
CREATE TABLE TB_UNIQUE(
  COL_IDX NUMBER(3) UNIQUE,
  COL_NAME VARCHAR2(20) NOT NULL
);
 
INSERT INTO TB_UNIQUE(COL_IDX, COL_NAME)
     VALUES (101, 'GSP');
     
INSERT INTO TB_UNIQUE(COL_IDX, COL_NAME)
     VALUES (102, '손준오');
     
INSERT INTO TB_UNIQUE(COL_IDX, COL_NAME)
     VALUES (103, '박민규');
     
INSERT INTO TB_UNIQUE(COL_IDX, COL_NAME)
     VALUES (104, '신정훈');
     
SELECT * FROM TB_UNIQUE;

const2_q1

 

-- 중복되는 COL_IDX 101로 INSERT 실행
INSERT INTO TB_UNIQUE(COL_IDX, COL_NAME)
     VALUES (101, '강재석');
     
-- 중복되는 COL_IDX 101로 UPDATE 실행
UPDATE TB_UNIQUE
   SET COL_IDX = 101
 WHERE COL_NAME = '박민규';

const2_q2

 

중복되는 데이터 INSERT 및 UPDATE 시 UNIQUE 제약 조건에 의해 오류 발생

 

반응형