[정상] Oracle 의 Check 제약 사례 상세 설명
1. 목표
Oracle 에서 CHECK 제약 조건 을 어떻게 사용 하 는 지 실례 설명 (생 성, 사용, 사용 하지 않 기, 삭제)
2. Check 구속 이란 무엇 인가?
CHECK 제약 이란 표 의 열 에 추가 적 인 제한 조건 을 추가 하 는 것 을 말한다.
주:
3. 테이블 생 성 시 CHECK 제약 조건 정의
3.1 문법:
CREATE TABLE table_name
(
column1 datatype null/not null,
column2 datatype null/not null,
...
CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE]
);
그 중에서 도 DISABLE 의 관건 은 옵션 이다.DISABLE 키 워드 를 사용 하면 CHECK 제약 조건 이 생 성 되면 CHECK 제약 조건 이 적용 되 지 않 습 니 다.
3.2 예시 1: 수치 범위 검증
create table tb_supplier
(
supplier_id number,
supplier_name varchar2(50),
contact_name varchar2(60),
/* CHECK , supplier_id , 。*/
CONSTRAINT check_tb_supplier_id CHECK (supplier_id BETWEEN 100 and 9999)
);
검증: 표 에 supplier 삽입id 만족 조건 과 불만족 조건 두 가지 상황:
--supplier_id check ,
insert into tb_supplier values(200, 'dlt','stk');
--supplier_id check , ,
insert into tb_supplier values(1, 'david louis tian','stk');
조건 에 만족 하지 않 는 오류 알림:
Error report -
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_SUPPLIER_ID) violated
02290. 00000 - "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check
3.3 예시 2: 강제로 열 을 삽입 하 는 자 모 는 대문자 이다
create table tb_products
(
product_id number not null,
product_name varchar2(100) not null,
supplier_id number not null,
/* CHECK check_tb_products, */
CONSTRAINT check_tb_products
CHECK (product_name = UPPER(product_name))
);
검증: 표 에 produt 삽입name 만족 조건 과 불만족 조건 두 가지 상황:
--product_name check ,
insert into tb_products values(2, 'LENOVO','2');
--product_name check , ,
insert into tb_products values(1, 'iPhone','1');
조건 에 만족 하지 않 는 오류 알림:
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_PRODUCTS) violated
02290. 00000 - "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check
4. ALTER TABLE 정의 체크 제약 조건
4.1 문법
ALTER TABLE table_name
ADD CONSTRAINT constraint_name CHECK (column_name condition) [DISABLE];
그 중에서 도 DISABLE 의 관건 은 옵션 이다.DISABLE 키 워드 를 사용 하면 CHECK 제약 조건 이 생 성 되면 CHECK 제약 조건 이 적용 되 지 않 습 니 다.
4.2 예시 준비
drop table tb_supplier;
--
create table tb_supplier
(
supplier_id number,
supplier_name varchar2(50),
contact_name varchar2(60)
);
4.3 CHECK 제약 조건 생 성
-- check
alter table tb_supplier
add constraint check_tb_supplier
check (supplier_name IN ('IBM','LENOVO','Microsoft'));
4.4 검증
--supplier_name check ,
insert into tb_supplier values(1, 'IBM','US');
--supplier_name check , ,
insert into tb_supplier values(1, 'DELL','HO');
조건 에 만족 하지 않 는 오류 알림:
SQL Error: ORA-02290: check constraint (502351838.CHECK_TB_SUPPLIER) violated
02290. 00000 - "check constraint (%s.%s) violated"
*Cause: The values being inserted do not satisfy the named check
5. CHECK 제약 조건 사용 하기
5.1 문법
ALTER TABLE table_name
ENABLE CONSTRAINT constraint_name;
5.2 예시
drop table tb_supplier;
-- CHECK
create table tb_supplier
(
supplier_id number,
supplier_name varchar2(50),
contact_name varchar2(60),
/* CHECK , */
CONSTRAINT check_tb_supplier_id CHECK (supplier_id BETWEEN 100 and 9999) DISABLE
);
--
ALTER TABLE tb_supplier ENABLE CONSTRAINT check_tb_supplier_id;
6. 체크 제약 사용 안 함
6.1 문법
ALTER TABLE table_name
DISABLE CONSTRAINT constraint_name;
6.2 예시 --
ALTER TABLE tb_supplier DISABLE CONSTRAINT check_tb_supplier_id;
7. 구속 상세 정보 보기 문구: --
select
constraint_name,--
constraint_type,--
table_name,--
search_condition,--
status--
from user_constraints--[all_constraints|dba_constraints]
where constraint_name='CHECK_TB_SUPPLIER_ID';
8. CHECK 구속 삭제문법
ALTER TABLE table_name
DROP CONSTRAINT constraint_name;
8.2 예시
ALTER TABLE tb_supplier
DROP CONSTRAINT check_tb_supplier_id;
---------------------------------------------------------------------------------------------------------
만약 당신 이 시도 하 는 과정 에서 어떤 문제 가 발생 하거나 나의 코드 에 잘못된 부분 이 있다 면 지적 해 주 십시오. 대단히 감사합니다!
연락처: david. [email protected]
판권 짱: 전재 출처 를 표시 해 주세요. 그렇지 않 으 면 법 적 책임 을 추궁 하 세 요!
----------------------------------------------------------------------------------------------------------
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
자바 작업 은 Clob 또는 NClob 데이터 형식의 저장 프로 세 스 인 스 턴 스 를 포함 합 니 다.텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.