2023. 12. 29. 15:56ㆍDatabase/MySQL
MySQL foreign keys 제약 조건
제약조건 테이블간의 링크를 파괴하는 작업을 방지하는데 사용됩니다.
Foreign keys가 있는 테이블을 자식 테이블이라고 하며
기본 키를 사용하여 참조하고 있는 테이블을 부보 테이블이라고 합니다.
Foreign keys 설정하는 방법
1. 테이블 설정창 하단의 Foreign keys 탭을 클릭합니다.
2. Foreign key Name을 구분하기 쉽게 설정하고 Refernced Table(참조할 테이블)의 컬럼을 선택합니다.
* Foreign Key 설정한 것은 아래 Indexes 탭에서도 확인 가능이 가능합니다.
CASCADE는 단어 그대로 종속의 의미로 기본키와 외래키의 관계로 참조되는 데이터가 연동되어 부모테이블의 row에 Delete 또는 Update 명령어가 적용될 때, 자동적으로 자식 테이블의 row에 반영되는 것을 의미합니다.
위에서 설정한 Foreign Key On Delete CASCADE는
기본키 테이블의 row가 삭제되면 연결된 외래키 테이블의 row도 삭제되게끔 설정한 것입니다.
예를 들어 어느 서비스의 회원이 탈퇴하는 경우 해당 회원의 데이터가 모두 삭제 되듯이
User 테이블의 id와 photo 테이블의 userId가 각각 기본키와 외래키로 연결되어 있고 User 테이블의 id가 삭제되면 연결된 photo 테이블의 해당 UserId의 데이터가 삭제되는 것과 같습니다.
Foreign Key의 특징!
1. 데이터 insert시 데이터의 형식만 맞으면 다 들어갑니다.
2. Foreign Key를 등록하여 참조시키면 다른 테이블과 연결로 잘못된 데이터가 들어오는 경우 에러창이 뜨면서 저장이 안되게 할 수 있습니다.
3. Foreign Key의 On Delete CASCADE를 사용하면 데이터 삭제시 선택된 데이터와 참조 연결된 모든 데이터가 삭제됩니다.
'Database > MySQL' 카테고리의 다른 글
MySQL 알아두면 쓸모있는 기능 활용 방법(데이터 문자열 찾기 & 변경, 테이블 코멘트 사용) (0) | 2023.12.29 |
---|---|
MySQL의 like와 문자열 컬럼에 Indexes fulltext 설정하는 방법 (0) | 2023.12.29 |
MySQL 테이블의 Indexes unique 설정하는 방법 (1) | 2023.12.26 |
MySQL 인스타그램 관련 데이터 관리 실습 문제(order by, group by, join, limit ...) (0) | 2023.12.26 |
MySQL 테이블 데이터 Auto Increment 초기화 및 조회하는 방법 (1) | 2023.12.26 |