이름에서 알 수 있듯이 MySQL UNIQUE 제약 조건은 테이블에 있는 열의 고유성을 유지하며 중복 값 삽입을 허용하지 않습니다. 기본적으로 UNIQUE 제약 조건은 인덱스 열의 모든 값이 고유해야 하는 인덱스를 생성합니다. 여기에서 MySQL 테이블에 하나 이상의 UNIQUE 열이 있을 수 있다는 점을 언급하는 것이 적절합니다.
컬럼을 정의할 때 'UNIQUE' 키워드를 언급함으로써 UNIQUE 제약조건을 적용할 수 있다. 다음 예의 도움으로 이해할 수 있습니다 -
mysql> Create table test3(ID INT UNIQUE, Name Varchar(20)); Query OK, 0 rows affected (0.16 sec)
위의 쿼리는 'UNIQUE' 제약 조건이 있는 'ID' 열이 있는 'test3'이라는 테이블을 생성합니다. 다음과 같이 DESCRIBE 문으로 확인할 수 있습니다 -
mysql> DESCRIBE test3; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | UNI | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)
UNIQUE 제약 조건은 다음 쿼리를 사용하여 테이블의 열에도 적용할 수 있습니다. -
mysql> Create table test4(ID INT, Name Varchar(20),UNIQUE(ID)); Query OK, 0 rows affected (0.15 sec)
다음과 같이 DESCRIBE 문으로 확인할 수 있습니다 -
mysql> DESCRIBE test4; +-------+-------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +-------+-------------+------+-----+---------+-------+ | ID | int(11) | YES | UNI | NULL | | | Name | varchar(20) | YES | | NULL | | +-------+-------------+------+-----+---------+-------+ 2 rows in set (0.04 sec)