FK 등록 오류
다른 테이블에서 FK를 등록하려고 했더니 발생한 오류
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Operation failed: There was an error while applying the SQL script to the database.
Executing:
ALTER TABLE `bookstore`.`cartitems`
ADD INDEX `user_id_idx` (`user_id` ASC) VISIBLE;
;
ALTER TABLE `bookstore`.`cartitems`
ADD CONSTRAINT `book_id`
FOREIGN KEY (`book_id`)
REFERENCES `bookstore`.`books` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
ADD CONSTRAINT `user_id`
FOREIGN KEY (`user_id`)
REFERENCES `bookstore`.`users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ERROR 1826: Duplicate foreign key constraint name 'book_id'
SQL Statement:
ALTER TABLE `bookstore`.`cartitems`
ADD CONSTRAINT `book_id`
FOREIGN KEY (`book_id`)
REFERENCES `bookstore`.`books` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
ADD CONSTRAINT `user_id`
FOREIGN KEY (`user_id`)
REFERENCES `bookstore`.`users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION
원인
제약 조건의 이름이 문제
해결
참조키에 중복되지 않도록 규칙을 생성하고, 이름 변경하기
FK 제약조건 이름 짓기
fk_기준 테이블명_참조테이블명_참조키
하지만 다시 오류가 발생!
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Operation failed: There was an error while applying the SQL script to the database.
Executing:
ALTER TABLE `bookstore`.`cartitems`
ADD INDEX `user_id_idx` (`user_id` ASC) VISIBLE;
;
ALTER TABLE `bookstore`.`cartitems`
ADD CONSTRAINT `fk_cartItems_books_boook_id`
FOREIGN KEY (`book_id`)
REFERENCES `bookstore`.`books` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION,
ADD CONSTRAINT `fk_cartItems_users_user_id`
FOREIGN KEY (`user_id`)
REFERENCES `bookstore`.`users` (`id`)
ON DELETE NO ACTION
ON UPDATE NO ACTION;
ERROR 1061: Duplicate key name 'user_id_idx'
SQL Statement:
ALTER TABLE `bookstore`.`cartitems`
ADD INDEX `user_id_idx` (`user_id` ASC) VISIBLE
원인
FK 등록할 때마다 자동으로 idx 생성해주는 키 값의 이름이 중복
해결
자동으로 생성해주는 INDEX 이름을 변경
user_id_idx
를 cartItems_user_id_idx
로 변경
This post is licensed under CC BY 4.0 by the author.