본문 바로가기
IT/Database

[Mysql] foreign key 추가하는법

by 성준하이 2023. 9. 17.
반응형

mysql 에서 foreign key를 추가하는법을 공유한다.

 

물론 create 시에 함께 추가를 해도 무방하나, 정규화 작업을 거치게 되면서 테이블을 나누고 foreign key 를 설정해줘야하는 경우이다.

 

아래 두개 테이블을 보면

 

Table Name= Grade

순번(pk) 학번 과목 성적
1 111111 수학 A
2 111112 수학 B

Table Name= Student

학번 이름 ...
111111 홍길동  
111112 이순신  
111113 장영실  

먼저 Grade 테이블에서 기존에는 학번과 학생 이름들이 같이 명시 되어있었으나 정규화로 인해 학생 테이블이 별도로 만들어지면서 학번 이라는 컬럼이 fk와 pk 로 지정을 해야했다.

 

그럼 student에는 학번이 pk가 되야하고 grade 에서는 학번이 fk가 되야한다.

 

이럴 경우 추가하는 쿼리이다.

 

Alter table Grade add foreign key(학번) references Student(학번);

 

주의점은 Grade에 정의되어있는 모든 학번이 Student 테이블의 학번값으로 중복 없이 모두 값이 존재해야한다.

foreign key로 이뤄져있는데 해당 값이 없다면 무결성이 깨지기 때문에 외래키를 걸수가 없기 때문이다.

 

반응형

댓글