728x90
1. 테이블 생성 시 바로 적용하기
- 참조 테이블의 데이터가 삭제되면 그 데이터와 연관있던 데이터를 함께 삭제하는 내용이다.
예를 들어 A가 게시글을 썼는데 회원탈퇴를 진행했다. 그럼 A가 썼던 게시글은 자동 삭제된다.
CREATE TABLE `board`.`tb_userinfo` (
`id` bigint NOT NULL AUTO_INCREMENT,
`username` varchar(20) NOT NULL,
`password` varchar(100) NOT NULL,
`email` varchar(45) NOT NULL,
`role` varchar(20) DEFAULT 'MEMBER',
PRIMARY KEY (`id`,`username`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
CREATE TABLE `board`.`tb_board` (
`id` bigint NOT NULL AUTO_INCREMENT,
`title` varchar(255) NOT NULL,
`content` text NOT NULL,
`writer_id` bigint NOT NULL,
`writer` varchar(20) NOT NULL,
`image` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
FOREIGN KEY (`writer_id`, `writer`) REFERENCES `board`.`tb_userinfo` (`id`, `username`) ON DELETE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci;
- FK 추가 뒤에 ON DELETE CASCADE만 붙여주면 된다.
'DataBase > MySQL' 카테고리의 다른 글
[MySQL] Inner Join (0) | 2022.01.07 |
---|---|
[MySQL] 기존 테이블에 외래키(FK)추가 & 제약조건 확인 (0) | 2022.01.04 |
[DataBase] MySQL 복합키 설계 (0) | 2021.12.18 |
[MySQL] 테이블 삭제 및 데이터 삭제 (0) | 2021.12.16 |
[MySQL] Auto Increment 초기화 (0) | 2021.12.16 |