에러 배경
MySQL Workbench에서 새로운 테이블을 생성하던 과정에서 기본키, 외래키를 설정하고 생성하려고 apply를 누르니 에러가 발생했다.
에러 그 잡채
Error 1005: "Can't create table `BookShop`.`baskets`
(errno: 121 "Duplicate key on write or update")
SQL Statement: ALTER TABLE `BookShop`.`baskets` ADD CONSTRAINT `FK_book_id`
FOREIGN KEY (`book_id`) REFERENCES `BookShop`.`books` (`id`) ON DELETE NO ACTION
ON UPDATE NO ACTION, ADD CONSTRAINT `FK_user_id` FOREIGN KEY (`user_id`)
REFERENCES `BookShop`.`users` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION"
에러를 읽어보면 key가 중복되었다고 나와있다.
해결 과정
해결. 외래키의 이름 변경하기
처음 외래키를 설정할 때 외래키의 이름을 정할 수 있는데 이때 다른 테이블에서 사용한 외래키의 이름과 중복되면 발생하는 에러다. 그렇기 때문에 외래키의 이름을 변경해 주면 된다.
🍯tip! 외래키의 중복을 막기 위해서 'FK_현재테이블명_참조테이블명_참조 PK명'으로 한다면 앞으로 중복이 발생하는 일은 없다.
정리
외래키의 이름이 중복되면 안 되는 사실을 깨닫고 앞으로 까먹어서 또 고생하는 일이 없으면 좋겠다.
🍯tip! 혹시 한 번이라도 MySQL Workbench에서 apply를 눌러서 테이블에 이미 적용이 되었다면 다음 글도 참고하면 좋을 것 같다.
[MySQL Error 1061] 아니 외래키 이름도 바꿨는데 또 에러야?
에러 배경MySQL Workbench에서 외래키 에러를 해결하자마자 이어서 발생된 에러이다.에러 그 잡채Error 1061: Duplicate key name 'FK_book_id_idx'SQL Statement: ALTER TABLE `BookShop`.`baskets`ADD INDEX `FK_book_id_idx` (`book_id`
nulzi-dev.tistory.com
'에러' 카테고리의 다른 글
[MySQL Error 1701] 외래키 설정이 되어 있는 테이블 데이터가 삭제가 안 되네? (0) | 2024.05.31 |
---|---|
[MySQL Error 1061] 아니 외래키 이름도 바꿨는데 또 에러야? (0) | 2024.05.28 |
[JS Array.map 에러] map(Number)는 되는데 map(parseInt)는 왜 안돼? (0) | 2024.05.27 |
[Node.js ERR_HTTP_HEADERS_SENT 에러] 헤더를 세팅하지 말라고? (0) | 2024.05.20 |
[mariadb 1175 에러] 업데이트하는데 키를 이용하라고? (0) | 2024.05.09 |