alter 명령을 사용하여 기존 테이블에 고유 키를 추가할 수 있습니다. 구문은 다음과 같습니다 -
ALTER TABLE yourTableName ADD CONSTRAINT yourConstraintName UNIQUE(yourColumnName1,yourColumnName2,............N);
위의 개념을 이해하기 위해 몇 개의 열이 있는 테이블을 만들어 보겠습니다. 테이블 생성 쿼리 -
mysql> create table MovieCollectionDemo −> ( −> MovieId int, −> MovieDirectorName varchar(200), −> NumberOfSongs int unsigned −> ); Query OK, 0 rows affected (0.62 sec)
이제 테이블에 고유 제약 조건이 없는지 확인할 수 있습니다. 고유 제약 조건을 확인하는 쿼리는 다음과 같습니다. -
mysql> desc MovieCollectionDemo;
다음은 출력입니다 -
+-------------------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+------------------+------+-----+---------+-------+ | MovieId | int(11) | YES | | NULL | | | MovieDirectorName | varchar(200) | YES | | NULL | | | NumberOfSongs | int(10) unsigned | YES | | NULL | | +-------------------+------------------+------+-----+---------+-------+ 3 rows in set (0.00 sec)
이제 위의 구문에서 고유 키를 추가할 수 있습니다. MovieId 열에 고유 키를 추가하고 있습니다. 쿼리는 다음과 같습니다 -
mysql> alter table MovieCollectionDemo add constraint uni_moviecollectio unique(MovieId); Query OK, 0 rows affected (0.46 sec) Records: 0 Duplicates: 0 Warnings: 0
전체 테이블과 MovieId 열을 보고 고유 키가 있는지 확인합시다.
mysql> desc MovieCollectionDemo;
다음은 출력입니다 -
+-------------------+------------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------------------+------------------+------+-----+---------+-------+ | MovieId | int(11) | YES | UNI | NULL | | | MovieDirectorName | varchar(200) | YES | | NULL | | | NumberOfSongs | int(10) unsigned | YES | | NULL | | +-------------------+------------------+------+-----+---------+-------+ 3 rows in set (0.02 sec)
위의 출력은 "UNI"를 표시하며, 이는 "MovieId" 필드에 고유 키가 있음을 의미합니다.