1. 외래키 제약조건이란?
Referential Integrity Constraint - 참조 무결성 제약조건
student 테이블과 department 테이블이 있다.
student 테이블의 departmentId 필드는 외래키이다. 이 필드의 값은 department 테이블의 기본키인 id 필드값과 일치한다.
예를 들어, 컴퓨터공학과 소속 학생들이 존재한다면, 컴퓨터공학과를 삭제할 수 없어야 한다.
만약 department 테이블에서 컴퓨터공학과 레코드를 삭제하려고 할 때,
student 테이블의 departmentId 값이, 단 하나라도 컴퓨터공학과 departmentId와 일치한다면,
삭제는 실패하고 에러가 발생한다.
이 에러를 '참조 무결성 제약조건 위반' 에러 라고 한다.
2. 외래키 제약조건 등록 / 삭제하기
mybatis 에서 이 외래키 제약조건을 걸어보자.
mysql workbench 에서 외래키가 존재하는 student 테이블을 우클릭 -> Alter Table을 클릭한다.
그리고,
1. 위 사진과 같이 [Foreign Keys] 탭에 들어가서
2. [Foreign Key Name] 부분에 새로 만들 외래키 이름을 입력한다.
여기서는 student 테이블의 departmentId 외래키가 department 테이블의 id와 일치해야하므로, 'FK_Student_Department' 라고 했다.
3. [Referenced Table] 에 참조할 student2 데이터베이스의 department 테이블을 선택한다.
4. 그 옆에서 student 테이블의 외래키를 선택한다. (departmentId)
5. 그리고 거기서 departmentId 필드가 가리키는 department 테이블의 id 필드를 선택한다.
6. 마지막 Apply 를 클릭하면, 외래키 제약조건이 등록된다.
7. 만약 삭제를 하고 싶다면, 삭제할 외래키를 우클릭 한 후 아래 사진처럼 Delete selected 를 해서 삭제하면 된다.
댓글