SQL 제약조건 FOREIGN KEY
FOREIGN KEY
- 제약 조건을 설정한 필드는 외래 키 라고 부르며 한 테이블을 다른 테이블과 연결 시켜주는 역할을 합니다. 외래키가 설정된 테이블에 레코드를 입력하면 기준이 되는 테이블의 내용을 참조해서 레코드가 입력됩니다.
- FOREIGN KEY 제약 조건은 하나의 테이블을 다른 테이블에 의존하게 만듭니다.
- FK 제약 조건을 설정 할 때 참조되는 테이블의 필드는 반드시 UK,PK의 제약 조건이 설정 되어 있어야 합니다.
CREATE 문법으로 FOREIGN KEY 설정
- CREATE 문법으로 테이블을 생성 할 때 해당 필드 타입 뒤에 FOREIGN KEY를 명시하면 해당 필드가 왜래키로 설정 됩니다.
예시
1
2
3
4
5
6
CREATE TABLE 테이블이름(
필드이름, 필드타입,
[CONSTRAINT 제약조건이름]
FOREIGN KEY (필드이름)
REFERENCES 테이블이름 (필드이름)
)
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
CREATE TABLE Test(
ID INT PRIMARY KEY,
Name VARCHAR(30)
);
CREATE TABLE Test2(
ID INT,
ParentID INT,
FOREIGN KEY (ParentID)
REFERENCES Test(ID) ON UPDATE CASCADE
);
실행 결과
ALTER 문으로 FOREIGN KEY 설정
- ALTER 문으로 테이블에 새로운 필드를 추가하거나 수정할 때도 FOREIGN KEY 제약 조건을 설정할 수 있습니다.
예시
1
2
3
4
ALTER TABLE 테이블이름
ADD [CONSTRAINT 제약조건이름]
FOREIGN KEY (필드이름)
REFERENCES 테이블이름 (필드이름)
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
CREATE TABLE Test(
ID INT PRIMARY KEY,
Name VARCHAR(30)
);
CREATE TABLE Test3(
ID INT PRIMARY KEY,
Name VARCHAR(30)
);
ALTER TABLE Test
ADD CONSTRAINT ParentID
FOREIGN KEY (ID)
REFERENCES Test3 (ID);
실행 결과
FOREIGN KEY 제약 조건 삭제
1
2
3
ALTER TABLE 테이블이름
DROP FOREIGN KEY 제약조건이름