반응형
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로 이뤄져있는데 해당 값이 없다면 무결성이 깨지기 때문에 외래키를 걸수가 없기 때문이다.
반응형
'IT > Database' 카테고리의 다른 글
[Mysql] Limit / Offset 쿼리 (페이징 처리) (64) | 2023.10.04 |
---|---|
null관련 함수(NVL, ISNULL, NULLIF, COALESCE ) (42) | 2023.09.26 |
[Oracle] CHARTOROWID (68) | 2023.09.12 |
[Mysql] ERROR 1217 - Cannot delete or update a parent row: a foreign key constraint fails (55) | 2023.08.22 |
[Mysql] 컬럼 내 특정 단어 갯수 구하기 (38) | 2023.08.21 |
댓글