하하 CASCADE가 JPA 에서만 쓰이는 기능인줄 알았는데 사실 DB 기술에서 비롯된 거였다.
제약조건
제약조건은 테이블에 저장될 데이터의 무결성, 즉 데이터의 정확성과 일관성을 유지하고, 데이터에 결손과 부정합이 없음을 보증하기 위해 해놓는 장치다.
필수는 아니지만, 나중을 위해 초기에 정의해주는 것이 좋다.
제약조건의 종류
Primary Key(기본키) - Row의 대한 고유성 보장, 한 테이블 하나 씩 지정 가능, Null 값 입력 X, 자동으로 Unique 인덱스로 생성
Unique Key(고유키) - PK와 유사, 각 Row에 대한 고유성 보장, Null 값 입력 O
Not Null - 해당 컬럼에 Null 값 입력 X
Check - 컬럼에 저장될 수 있는 값의 범위를 제한
Foreign Key(외래키) - 하나의 테이블이 다른 테이블을 참조하고자 할 때 FK를 정의해줄 수 있다. 이와 관련 된 참조 무결성 규정 관련 옵션이 있다.
참조 무결성 규정 관련 옵션
- Cascade: Parent 값 삭제 시 Child 값 같이 삭제
- Set Null: Parent 값 삭제 시 Child 의 해당 컬럼 Null 처리
- Set Default: Parent 값 삭제 시 Child 의 해당 컬럼 Default 값으로 변경
- Restrict: Child 테이블에 해당 데이터가 PK 로 존재하지 않는 경우에만 Parent 값 삭제 및 수정 가능
- No Action: 참조 무결성 제약이 걸려 있는 경우 삭제 및 수정 불가
'TIL' 카테고리의 다른 글
TIL 2024-09-10 @SQLRetriction @SQLDelete (3) | 2024.09.11 |
---|---|
TIL 2024-08-14 대규모 시스템 (0) | 2024.08.14 |
TIL 2024-08-12 VO와 JPA를 쓰면서 컨버터에 대한 깨달음 (2) | 2024.08.12 |
TIL 2024-08-08 Feign Client 더 잘 써보기 (0) | 2024.08.08 |
TIL 2024-08-06 Spring MSA 라이브러리 (0) | 2024.08.06 |