MySQL에서 기존 필드를 고유하게 만들기 위해 ALTER 명령을 사용하고 필드에 UNIQUE 제약 조건을 설정할 수 있습니다. 예를 들어 보겠습니다. 먼저 테이블을 생성하겠습니다.
mysql> create table AddingUnique -> ( -> Id int, -> name varchar(100) -> ); Query OK, 0 rows affected (0.44 sec)
기존 필드에 UNIQUE를 추가하는 구문입니다.
alter table yourTableName add UNIQUE(yourColumnName);
'name' 열에 UNIQUE를 추가하기 위해 위의 구문을 적용합니다.
mysql> alter table AddingUnique add UNIQUE(name); Query OK, 0 rows affected (0.60 sec) Records: 0 Duplicates: 0 Warnings: 0
이제 필드를 고유하게 설정했기 때문에 중복 레코드를 테이블에 삽입할 수 없습니다. 중복 레코드를 추가하려고 하면 오류가 발생합니다.
mysql> alter table AddingUnique add UNIQUE(name); Query OK, 0 rows affected (0.60 sec) Records: 0 Duplicates: 0 Warnings: 0 mysql> insert into AddingUnique values(1,'John'); Query OK, 1 row affected (0.15 sec) mysql> insert into AddingUnique values(1,'John'); ERROR 1062 (23000): Duplicate entry 'John' for key 'name' mysql> insert into AddingUnique values(2,'Carol'); Query OK, 1 row affected (0.18 sec) mysql> insert into AddingUnique values(3,'John'); ERROR 1062 (23000): Duplicate entry 'John' for key 'name' mysql> insert into AddingUnique values(4,'Smith'); Query OK, 1 row affected (0.18 sec)
모든 기록을 표시합니다.
mysql> select *from AddingUnique;
다음은 출력입니다.
+------+-------+ | Id | name | +------+-------+ | 1 | John | | 2 | Carol | | 4 | Smith | +------+-------+ 3 rows in set (0.00 sec)