MySQL 고유 키 제거하기
MySQL 테이블에서 고유 키(Unique Key)를 제거하려면 DROP 명령어를 사용합니다. 기본 문법은 다음과 같습니다.
ALTER TABLE yourTableName DROP INDEX yourKeyName;
예제 테이블 생성
위 문법을 실제로 이해하기 위해 고유 키가 포함된 테이블을 먼저 만들어 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table DropIndexDemo -> ( -> BookId int unique key, -> BookName varchar(200) -> ); Query OK, 0 rows affected (0.88 sec)
고유 키 이름 확인
고유 키를 삭제하려면 먼저 해당 키의 이름을 알아야 합니다. SHOW INDEX 명령어를 사용하면 테이블에 설정된 인덱스 정보를 확인할 수 있습니다.
mysql> show index from DropIndexDemo;
실행 결과는 다음과 같습니다.
+-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | Table | Non_unique | Key_name | Seq_in_index | Column_name | Collation | Cardinality | Sub_part | Packed | Null | Index_type | Comment | Index_comment | Visible | +-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ | dropindex | 0 | BookId | 1 | BookId | A | 0 | NULL | NULL | YES | BTREE | | | YES | +-----------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+---------------+---------+ 1 row in set (0.17 sec)
출력 결과를 보면 키 이름이 'BookId'로 지정되어 있는 것을 확인할 수 있습니다. 이제 이 고유 키를 제거하는 쿼리를 실행해 보겠습니다.
고유 키 삭제 실행
mysql> alter table DropIndex drop index BookId ; Query OK, 0 rows affected (0.33 sec) Records: 0 Duplicates: 0 Warnings: 0
쿼리가 정상적으로 실행되어 DropIndex 테이블에서 고유 키가 성공적으로 제거되었습니다. 이전에는 BookId 컬럼에 고유 키가 설정되어 있었습니다.
삭제 결과 확인
DESC 명령어로 테이블 구조를 조회하면 고유 키가 더 이상 표시되지 않는 것을 확인할 수 있습니다.
mysql> desc DropIndex;
실행 결과는 다음과 같습니다.
+----------+--------------+------+-----+---------+-------+ | Field | Type | Null | Key | Default | Extra | +----------+--------------+------+-----+---------+-------+ | BookId | int(11) | YES | | NULL | | | BookName | varchar(200) | YES | | NULL | | +----------+--------------+------+-----+---------+-------+ 2 rows in set (0.00 sec)
출력 결과에서 확인할 수 있듯이, BookId 컬럼의 Key 열이 비어 있어 고유 키가 더 이상 존재하지 않음을 알 수 있습니다.