[MySQL] 유니크 컬럼 대소문자 구분 안할 경우 해결 방법 Varchar

2023-06-12


사진: Unsplash 의 NEOM


1. 방법

 

간혹 컬럼에 유니크한 값을 넣는 와중에 Duplicate entry '중복된 값' for key '중복 컬럼' 같은 오류가 발생하곤 한다. 그중에서 문자는 같고 대소문자 여부만 다른 경우의 해결 방안을 알아보자.

 

MySQL에서는 기본적으로 varchar 형은 대소문자 구분 없이 동일한 문자로 판단하기 때문에 대소문자 구분을 할 수 있게 옵션 값을 넣어 주어야 하는데 그 값이 binary 값이다. 해당 옵션을 부여하면, 동일한 문자열이더라도 대소문자가 다를 경우 다른 값으로 인식하여  Duplicate entry '중복된 값' for key '중복 컬럼'오류가 발생하지 않는다.

 

ALTER TABLE 테이블명 MODIFY 컬럼명 varchar(길이) binary not null;

메인 이미지 출처 : 사진: Unsplash의 NEOM