MySQL에서 UNIQUE 제약 조건이 설정된 varchar 컬럼에 중복 값을 삽입하면 오류가 발생합니다. 오류 없이 중복 값을 추가하려면 먼저 해당 컬럼의 유니크 인덱스를 제거해야 합니다. 예제를 통해 단계별로 살펴보겠습니다.
1. 유니크 키가 있는 테이블 생성
먼저 FirstName 컬럼에 UNIQUE KEY를 설정한 테이블을 생성합니다.
mysql> create table DemoTable1409
-> (
-> FirstName varchar(20),
-> UNIQUE KEY UN_FirstName(FirstName)
-> );
Query OK, 0 rows affected (0.79 sec)
2. 유니크 인덱스 삭제
중복 값을 허용하려면 ALTER TABLE 문으로 유니크 인덱스를 제거합니다. 이 작업 이후에는 동일한 값을 여러 번 삽입해도 더 이상 오류가 발생하지 않습니다.
mysql> alter table DemoTable1409 drop index UN_FirstName;
Query OK, 0 rows affected (0.40 sec)
Records: 0 Duplicates: 0 Warnings: 0
3. 중복 값 삽입
INSERT 문을 사용하여 레코드를 추가합니다. 아래 예제에서 'Chris'를 두 번 삽입해도 오류 없이 정상적으로 처리되는 것을 확인할 수 있습니다.
mysql> insert into DemoTable1409 values('Chris');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable1409 values('Chris');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable1409 values('David');
Query OK, 1 row affected (0.09 sec)4. 결과 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select * from DemoTable1409;
실행 결과는 다음과 같습니다.
+-----------+
| FirstName |
+-----------+
| Chris |
| Chris |
| David |
+-----------+
3 rows in set (0.00 sec)
위 출력에서 볼 수 있듯이 'Chris'가 두 번 저장되어 있습니다. 이처럼 유니크 인덱스를 제거하면 varchar 컬럼에 중복 값을 오류 없이 자유롭게 추가할 수 있습니다. 다만, 중복 허용은 데이터 무결성 검증이 필요 없는 경우에만 사용하는 것이 좋습니다.