[트러블 슈팅] Duplicate key on write or update

개발냥이·2025년 3월 17일

트러블 슈팅

목록 보기
2/8
post-thumbnail

DB 테이블끼리 외래키로 연결을 하던 중 오류가 발생했다 ㅠㅠ

오류를 살펴보니 "Duplicate key on write or update"


Duplicate key on write or update

한국어로 변역해보면 "쓰기 또는 업데이트 시 중복 키" 라는 뜻으로 한마디로 제약 조건을 거는 키가 중복 되었다는 뜻으로 처음엔 이해했다.

하지만 검색을 해보니 외래키 값의 중복등 제약 조건 조건 위반으로 발생 한다고 한다.


첫 번째 시도 - 컬럼 이름 변경하기

현재 위의 그림과 같이 DB 테이블들끼리 많이 연결되어 있기 때문에 만약 컬럼 이름이 같으면 정확히 어떤 DB 테이블을 가리키는 지 모르기 때문에 오류가 발생할 것이라고 생각했다.

그래서 기존 컬럼 이름을 위의 사진에서

이처럼 변경을 하였다!!

결과는 성공😁😁
역시 오류 메시지에 정확한 메시지가 담겨 있었다


컬럼 이름 고도화하기

나는 컬럼 이름을 현재 테이블명 + 참조 테이블의 컬럼 명 으로 수정했는데 강의에서 강사님은
fk + 기준 테이블명 + 참조 테이블명 으로 작명하는 것이 더 명확하게 나타낼 수 있어 중복을 절대적으로 없앨 수 있다고 알려주셨다...!!
어차피 외래키를 지정할 컬럼이기 때문에 앞에 fk를 붙이다니 전혀 생각지도 못했던 방법이었다 👍👍

profile
웹 개발자가 되고픈

0개의 댓글