[MSSQL SERVER 기본에서 실무까지] 외래키 (Foreign Key) 3-14

2021. 12. 17. 13:17개발/MSSQL

  1. 외래키(FK)란?
    • 외래키는 두 테이블을 서로 연결하는 데 사용되는 키
    • 외래키가 포함된 테이블을 자식 테이블
    • 외래키 값을 제공하는 테이블을 부모 테이블
  1. 외래키(FK) 사용 목적
    • 테이블간 데이터 오류 예방을 위해 사용
  1. 주의사항
    • 연결하고자 하는 컬럼의 크기, 데이터 유형이 동일해야 함
    • 연결되는 데이터 컬럼은 기본키(PK) 또는 UNIQUE INDEX 가 설정 필요
    1. 외래키(FK) 설정
      • AlTER TABEL [테이블명] ADD CONSTRAINT [FK이름] FOREIGN KEY (테이블의 컬럼) REFERENCES [연결된테이블] (연결될테이블컬럼명)
    2. 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,0DEFAULT 0 NULL)
 
    INSERT INTO T매출 (일자, 제품, 수량)
        VALUES ('20200101''A2'20)
              ,('20200102''A1'30)
              ,('20200301''A3'40)
 
CREATE TABLE T매입 (
     일자 NVARCHAR(08
    ,제품 NVARCHAR(30PRIMARY KEY
    ,수량 NUMERIC(18,0DEFAULT 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로 인해 충돌 발생