728x90
테이블 특정 열에 제약 조건을 추가하는 방법은 다음과 같습니다.
-- PK
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 PRIMARY KEY (열이름[,..]);
-- UK
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 UNIQUE (열이름[,..]);
-- CK
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 CHECK (열이름 조건);
-- NN
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 CHECK (열이름 IS NOT NULL);
-- FK
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 FOREIGN KEY (열이름)
REFERENCES 참조할 테이블(참조할 열);
참조의 무결성을 위해 외래키 추가 옵션엔 다음 두 가지가 있습니다.
1. ON DELETE SET NULL
- 참조되는 값이 삭제되면 참조중인 데이터를 NULL로 변환합니다.
(부모 데이터가 삭제되면 자식 데이터를 NULL로 바꿉니다.)
-- 생성 시
CREATE TABLE 테이블(
-- 인라인 (열 레벨)
칼럼1 NUMBER(2) CONSTRAINT 테이블_칼럼1_fk
REFERENCES 참조테이블(참조 열)
ON DELETE SET NULL,
칼럼2 NUMBER(2),
-- 아웃라인 (테이블 레벨)
CONSTRAINT 테이블_칼럼1_fk FORIEGN KEY (칼럼2)
REFERENCES 참조테이블(참조 열)
ON DELETE SET NULL);
-- 추가 시
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 FORIEGN KEY(열 이름)
REFERENCES 참조테이블(참조 열)
ON DELETE SET NULL;
2. ON DELETE CASCADE
- 참조되는 행이 삭제되면 참조중인 행도 같이 삭제합니다.
(부모 행이 삭제되는 자식 테이블의 종속 행도 삭제합니다.)
-- 생성 시
CREATE TABLE 테이블(
-- 인라인 (열 레벨)
칼럼1 NUMBER(2) CONSTRAINT 테이블_칼럼1_fk
REFERENCES 참조테이블(참조 열)
ON DELETE CASCADE,
칼럼2 NUMBER(2),
-- 아웃라인 (테이블 레벨)
CONSTRAINT 테이블_칼럼1_fk FORIEGN KEY (칼럼2)
REFERENCES 참조테이블(참조 열)
ON DELETE CASCADE);
-- 추가 시
ALTER TABLE 테이블 ADD
CONSTRAINT 제약조건이름 FORIEGN KEY(열 이름)
REFERENCES 참조테이블(참조 열)
ON DELETE CASCADE;728x90
'SQL > oracle' 카테고리의 다른 글
| oracle SQL - 뷰 (VIEW) (0) | 2023.06.12 |
|---|---|
| oracle SQL - 인덱스 (2) | 2023.06.06 |
| oracle SQL - 삭제된 테이블 복구 (0) | 2023.05.31 |
| oracle SQL - 테이블 수정 ALTER (0) | 2023.05.30 |
| oracle SQL - TIMESTAMP, INTERVAL (0) | 2023.05.30 |