[MSSQL SERVER 기본에서 실무까지] 외래키 (Foreign Key) 3-14
2021. 12. 17. 13:17ㆍ개발/MSSQL
- 외래키(FK)란?
- 외래키는 두 테이블을 서로 연결하는 데 사용되는 키
- 외래키가 포함된 테이블을 자식 테이블
- 외래키 값을 제공하는 테이블을 부모 테이블
- 외래키(FK) 사용 목적
- 테이블간 데이터 오류 예방을 위해 사용
- 주의사항
- 연결하고자 하는 컬럼의 크기, 데이터 유형이 동일해야 함
- 연결되는 데이터 컬럼은 기본키(PK) 또는 UNIQUE INDEX 가 설정 필요
- 외래키(FK) 설정
- AlTER TABEL [테이블명] ADD CONSTRAINT [FK이름] FOREIGN KEY (테이블의 컬럼) REFERENCES [연결된테이블] (연결될테이블컬럼명)
- CODE
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
CREATE TABLE T매출 (
일자 NVARCHAR(08)
,제품 NVARCHAR(30)PRIMARY KEY
,수량 NUMERIC(18,0) DEFAULT 0 NULL)
INSERT INTO T매출 (일자, 제품, 수량)
VALUES ('20200101', 'A2', 20)
,('20200102', 'A1', 30)
,('20200301', 'A3', 40)
CREATE TABLE T매입 (
일자 NVARCHAR(08)
,제품 NVARCHAR(30) PRIMARY KEY
,수량 NUMERIC(18,0) DEFAULT 0 NULL)
INSERT INTO T매입 (일자, 제품, 수량)
VALUES ('20200101', 'A1', 100)
,('20200102', 'A2', 300)
,('20200301', 'A3', 400)
ALTER TABLE T매입
ADD CONSTRAINT T매입_FK
FOREIGN KEY (제품)
REFERENCES T매출(제품)
DELETE A
FROM T매출 A
WHERE A.제품 = 'A1'
|
cs |
- 외래키가 설정된 상태에서 DELETE 문 수행시 FK로 인해 충돌 발생
'개발 > MSSQL' 카테고리의 다른 글
[MSSQL SERVER 기본에서 실무까지] 오류 및 처리건수 시스템변수 3-11 (0) | 2021.12.20 |
---|---|
MSSQL 명령어 정리 (0) | 2021.12.17 |
[MSSQL SEVER 기본에서 실무까지] Transaction 및 LOCK 관리 3-12~13 (0) | 2021.12.17 |
[MSSQL SERVER 기본에서 실무까지] 3-15 (0) | 2021.12.17 |
[MSSQL SERVER 기본에서 실무까지] 임시테이블 3-16 (0) | 2021.12.17 |