ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 210901_오류
    Oracle 2021. 9. 1. 17:11

    제약조건

    테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 여러 가지 규칙을 정해 놓으 것. 

    데이터의 무결성 유지를 위하여 사용자가 지정할 수 있는 성질

    모든 constraint는 데이터 사전(dictionary에 저장됨

    의미있는 이름을 부여했다면 constraiont를 쉽게 참조할 수 있음

    표준 객체 명명법을 따르는 게 좋음.

    제약조건은 테이블을 생성할 당시에 지정할 수도 있고, 테이블 생성 후 구조변경(alter)명령어를 통해서도 추가가 가능

    not null 제약조건은 반드시 컬럼 레벨에서만 정의 가능

    primary key(pk) : 유일하게 테이블의 각행을 식별(not null과 unique 조건 둘 다 만족)

    foreign ket(fk) : 열과 참조된 열 사이의 외래키 관계를 적용하고 설정

    unique key (uk) : 테이블의 모든 행을 유일하게 하는 값을 가진 열(null 허용)

    not null(nn) : 열은 null값을 포함할 수 없음

    check(ck) : 참이어야 하는 조건을 지정(대부분 업무 규칙 설정)

     

     

    (예제)

    --오류보고
    --ORA-02290: 체크 제약조건(ADMIN.SAWON_CK_BUSEO)이 위배되었습니다
    insert into sawon values(seq_sawon.nextval,'조예리','여자','개발부',4900000);

    --제약조건 제거하기
    --sawon테이블의 sawon_ck_buseo를 제거해보기
    alter table sawon drop constraint sawon_ck_buseo;

    --다른 부서 추가해서 제거되었는지 확인..교육부,관리부,홍보부 외
    insert into sawon values(seq_sawon.nextval,'조예리','여자','개발부',4900000);
    commit;

    --sawon에 name컬럼에 unique 제약조건 추가해보기..실제로 name에는 unique 잘 안씀
    alter table sawon add constraint sawon_uk_name unique(name);

    --같은 이름 추가해보기
    insert into sawon values(seq_sawon.nextval,'조예리','남자','관리부',4900000);
    --오류  ORA-00001: 무결성 제약 조건(ADMIN.SAWON_UK_NAME)에 위배됩니다

    'Oracle' 카테고리의 다른 글

    210902_join+부모,자식테이블(예제)  (0) 2021.09.02
    210901_join  (0) 2021.09.01
    210901_숫자함수  (0) 2021.09.01
    210901_rollup,cube  (0) 2021.09.01
    210831_update,delete  (0) 2021.08.31

    댓글

Designed by Tistory.