MySQL 테이블에 중복 항목이 입력되지 않도록 하려면 고유 키를 추가해야 합니다. 구문은 다음과 같습니다 -
alter ignore table yourTableName add constraint unique key(yourColumName);
위의 구문은 고유 키를 설정합니다. 위의 구문을 이해하기 위해 테이블을 생성해 보겠습니다.
다음은 테이블을 생성하는 쿼리입니다 -
mysql> create table RemoveDuplicateEntry −> ( −> Id int, −> Name varchar(100) −> )ENGINE = MyISAM; Query OK, 0 rows affected (0.15 sec)
이제 처음에 설명한 구문을 구현할 수 있습니다. 쿼리는 다음과 같습니다 -
mysql> alter table RemoveDuplicateEntry add constraint unique key(Id); Query OK, 0 rows affected (0.56 sec) Records: 0 Duplicates: 0 Warnings: 0
이제 테이블 구조를 확인해보자. 쿼리는 다음과 같습니다 -
mysql> desc RemoveDuplicateEntry;
다음은 출력입니다 -
+-------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+--------------+------+-----+---------+-------+ | Id | int(11) | YES | UNI | NULL | | | Name | varchar(100) | YES | | NULL | | +-------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
이제 중복 항목이 있는 레코드를 삽입해 보겠습니다. 위에서 UNIQUE를 사용했기 때문에 삽입되지 않습니다 -
레코드를 삽입하는 쿼리는 다음과 같습니다 -
mysql> insert into RemoveDuplicateEntry values(101,'John'); Query OK, 1 row affected (0.06 sec)
이제 동일한 레코드를 다시 삽입하면 다음 오류가 표시됩니다. -
mysql> insert into RemoveDuplicateEntry values(101,'John'); ERROR 1062 (23000): Duplicate entry '101' for key 'Id'
select 문으로 테이블의 모든 레코드를 확인하십시오. 쿼리는 다음과 같습니다 -
mysql> select *from RemoveDuplicateEntry;
다음은 중복 항목이 없는 레코드를 표시하는 출력입니다. -
+------+------+ | Id | Name | +------+------+ | 101 | John | +------+------+ 1 row in set (0.00 sec)