1. 문제 발생 및 원인
.sql 파일로 데이터를 추가하는데 아래 같은 에러가 발생했다.
해당 문제는 프라이머리 키에 중복된 키가 들어가서 발생하는 문제다. 이로 인해 5개의 데이터가 추가되어야 했지만 4개 밖에 추가되지 않았다.
2. 문제 해결
plant테이블의 primary key는 plant_id로 아래와 같이 설정되어 있었다.
plant_id INT NOT NULL AUTO_INCREMENT
이때 .sql 파일에서 다음과 같이 plant_id에 0~4를 넘겼다.
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (0, "로즈마리", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (1, "몬스테라", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (2, "아스파라거스 나누스", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (3, "커피나무", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (4, "테이블야자", ...);
이때 결과는 아래와 같이 1로 넘겼던 "몬스테라"가 추가되지 않았다.
수정한 코드는 1~5까지의 숫자를 전달했다. 이 경우 에러가 발생하지 않았다.
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (1, "로즈마리", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (2, "몬스테라", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (3, "아스파라거스 나누스", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (4, "커피나무", ...);
INSERT INTO plant(plant_id, plant_name, watering_cycle, temperature, sunshine_period) VALUES (5, "테이블야자", ...);
아래를 보면 데이터가 잘 추가된 것을 확인할 수 있다.
'DB > MySQL' 카테고리의 다른 글
[MySQL] AUTO_INCREMENT (0) | 2023.05.21 |
---|---|
[MySQL] .sql 파일(source 명령어)로 한글 데이터 insert시 에러 발생 (0) | 2023.05.13 |
[MySQL] Foreignkey 설정 에러 (1822, 3780) (0) | 2023.05.13 |
[MySQL] .sql파일과 source 명령어 (0) | 2023.05.13 |
[MySQL] as 사용법 (0) | 2023.03.23 |